何もする必要はありません。セッションを開始するリクエストが Tomcat である限りhttps
、セッション Cookie は としてマークされsecure
ます。
また、その事実を公式に文書化したものがあるかどうかも調べましたが、見つかりませんでした。しかし、これは少なくとも Tomcat 6.0.32 以降の動作です。
org/apache/catalina/connector/Request.java
メソッドの最後で、リクエストが安全かどうかを確認し、安全である場合はsecure
Cookie にフラグを設定するコードを次に示します。
/**
* Configures the given JSESSIONID cookie.
*
* @param cookie The JSESSIONID cookie to be configured
*/
protected void configureSessionCookie(Cookie cookie) {
cookie.setMaxAge(-1);
Context ctxt = getContext();
String contextPath = null;
if (ctxt != null && !getConnector().getEmptySessionPath()) {
if (ctxt.getSessionCookiePath() != null) {
contextPath = ctxt.getSessionCookiePath();
} else {
contextPath = ctxt.getEncodedPath();
}
}
if ((contextPath != null) && (contextPath.length() > 0)) {
cookie.setPath(contextPath);
} else {
cookie.setPath("/");
}
if (ctxt != null && ctxt.getSessionCookieDomain() != null) {
cookie.setDomain(ctxt.getSessionCookieDomain());
}
if (isSecure()) {
cookie.setSecure(true);
}
}
更新:フィルターなどを使用して手動でこれを自分で設定しようとすることができます.
「セキュア」フラグの設定から JSESSION id Cookie までの例を確認できます