- PR -

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

1
投稿者投稿内容
・ω・
会議室デビュー日: 2003/08/12
投稿数: 4
投稿日時: 2003-08-12 18:21
はじめまして、・ω・です。

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

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

[開発環境]
OS:Win2000
Java:JDK1.4.1
APサーバ:Tomcat4.0.6
yamamoto
会議室デビュー日: 2003/05/16
投稿数: 14
お住まい・勤務地: 福岡
投稿日時: 2003-08-12 22:18
>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では、どうかは確認しておりませんが。
・ω・
会議室デビュー日: 2003/08/12
投稿数: 4
投稿日時: 2003-08-13 10:16
yamamotoさん、ご返答ありがとうございます。

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

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

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

スキルアップ/キャリアアップ(JOB@IT)