2012-08-01 11 views
5

私はgoogelingをたくさんやっており、答えを見つけることができませんでした。私は影響を与えずに戦争でweb.xmlファイルに次のように設定を試してみました:tomcat 6で安全な(httpsのみ)セッションcookieをフラグする方法

<session-config> 
     <session-timeout>60</session-timeout> 
     <cookie-config> 
      <http-only>true</http-only> 
      <secure>true</secure> 
     </cookie-config> 
    </session-config> 

は、Tomcatのcontext.xmlファイルにuseHttpOnlyを追加するHTTPのみにクッキーを制限するために動作しますが、私はまだそれらを確保するようにする必要があり。

答えて

4

何もする必要はありません。セッションを開始するリクエストがhttpsである限り、TomcatはセッションCookieをsecureとマークします。

また、その事実を正式に文書化したものがあるかどうかを確認しましたが、見つけられませんでした。しかし、それは少なくともTomcat 6.0.32以上の動作です。ここで

は、メソッドの最後に、要求が安全であるかどうかをチェックし、 org/apache/catalina/connector/Request.javaからのコードであり、それがある場合は、クッキーの secureフラグ設定します。

/** 
* 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); 
    } 
} 

UPDATEを:あなたフィルタを使用して手動で設定することができます。 set 'secure' flag to JSESSION id cookie

+0

あなたが選んだブラウザの開発ツール(私の場合はSafariのWebinspector )は、そのクッキーが確かに安全専用のクッキーであることを伝えます –

関連する問題