QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

JSESSIONIDを保持したCookieをsecure属性にする方法

はじめまして、・ω・です。

件名の通りなのですが、
Servletが生成する、JSESSIONIDを保持したCookieに
secure属性を付けて、レスポンスとしてクライアント
に返す方法はあるのでしょうか?
WebLogicなどでは、環境設定ファイルを変更することで、
出来そうな記述を見つけたのですが、Tomcatでは該当する
機能は実装されていなそうです。
Servletのソース上で、なんと対処出来ないかと今回
質問させて頂きました。

もし、どなたか解決方法をご存知の方がいましたら、
教えていただけないでしょうか。

[開発環境]
OS:Win2000
Java:JDK1.4.1
APサーバ:Tomcat4.0.6

質問者:・ω・

回答

Tomcatでは該当する機能は実装されていなそうです。

Tomcat4.1.27 についてですが、secureなCookieを発行していると思われます。
Tomcatのソース「org.apache.catalina.connector.HttpResponseBase」
にJSESSIONIDのCookieを発行する部分がありますが、
-(662行目)----------------------------------------
if (hreq.isSecure())
cookie.setSecure(true);
--------------------------------------------------

とあり、hreq(HttpServletRequest) がSSLであれば、Secure属性を付けているようです。
Tomcat4.0.6では、どうかは確認しておりませんが。

投稿者:yamamoto

編集 履歴 (0)

yamamotoさん、ご返答ありがとうございます。

Tomcat4.0.6でもrequestのプロトコルを判断し、
secure属性を付加していました…。

Tomcatでは、httpsプロトコルの場合、無条件で
secure属性をtrueにしているのですね。
(Tomcat3.x以下では確認はしていませんが)

逆にhttpsプロトコル使用時にセッションCookieを
非secureにすることはTomcatを改造しない限り不可能
なんですね。

投稿者:・ω・

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。