- - PR -
セッションが取得できない
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-02-06 10:21
>jdk1.3.1 を使用しています。
JDKはサーブレットコンテナではありません。サーブレットコンテナってのはTomcatとかWebLogicとかのことです。 |
|
投稿日時: 2006-02-06 11:38
>同じセッションを参照しているかどうか調べるため、isNew() とか getId() をダンプ
>してみてはいかがでしょう。 ★ https → http /////////////////// サーブレット(1回目) isNew:false getId:1ED22609FCB76B17C6477BF1FCDDEB31 ログインクラス(1回目) isNew:true getId:5A3553D19194200DA4DF5973EA53DC7A サーブレット(2回目) isNew:false getId:5A3553D19194200DA4DF5973EA53DC7A ログインクラス(2回目) isNew:false getId:5A3553D19194200DA4DF5973EA53DC7A ////////////////////////////// ★ http のみ/////////////////// サーブレット isNew:false getId:FE9D0383CDFB206518E89B4831A093DB ログインクラス isNew:false getId:FE9D0383CDFB206518E89B4831A093DB ////////////////////////////// でした。 サーブレットコンテナは Tomcat 4.1.31です。 |
|
投稿日時: 2006-02-06 13:11
つまり取得しているセッションが異なるということですね。
|
|
投稿日時: 2006-02-06 13:33
https → http にするとセッションが引き継げないと言うことでしょうか?
この場合どのような対処が考えられるでしょうか? |
|
投稿日時: 2006-02-06 13:36
うーん、そんなことないと思いますが。
クッキーにsecure属性が関係あるかもしれません。 ダンプしたことで何がわかるか考えてみてください。 |
|
投稿日時: 2006-02-06 14:39
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=12&topic=24503
調べてみると同じ質問がありました。 他にもサイトで >>サーブレット リクエストが HTTP と HTTPS の間で切り替わると、 >>新しいセッションが作成されることになります と書いてあるました。 WebLogicでは <session-descriptor> <session-param> <param-name>CookieDomain</param-name> <param-value>mydomain.com</param-value> </session-param> </session-descriptor> で設定できるようなので、Tomcatでも調べてみたいと思います。 |
|
投稿日時: 2006-02-06 15:11
HTTPSの時にセッションのクッキーにセキュア属性がついていることで今回の現象が発生しているのだと思いますが、意味なくつけているわけではないと思うので注意してください。
闇雲にセキュア属性を付けないような設定にすると、 HTTP で通信している際に盗聴したセッションIDで第三者が好き勝手できてしまう可能性があります。 たとえば WebLogic Server だとセッションIDを盗聴されてもセキュリティ制約の制限を宣言してあるページに第三者がアクセスできなくする仕組みがあったりします。 http://edocs.beasys.co.jp/e-docs/wls/docs81/config_xml/WebServer.html#AuthCookieEnabled この仕組みを使うとHTTPSでログインした際、セッションIDとは別のログイン済みであることを確認するためのセキュア属性のついたクッキーを追加で発行します。HTTP<->HTTPSでセッション双方向にセッションの持続を可能にすると共に盗聴によるsecurity-constraintで宣言したページへの第三者のアクセスを防ぎます。 このような仕組みを用意していなければ HTTP へ後戻りしてもセッションを持続させようとするのは少々危険ですので注意してください。 |
|
投稿日時: 2006-02-06 19:06
ご教授ありがとう御座います。
セッションでセキュリティを変更してページの移動をするか、DBにセッション情報をもたせてしまうか... Tomcatの設定、クッキーのセキュア属性、詳しく調べてみたいと思います。 |