[Seasar-user:4964] [S2JSF] セッション管理
Hiroyuki Onagi
[E-MAIL ADDRESS DELETED]
2006年 10月 31日 (火) 20:38:37 JST
小名木と申します。
S2JSFで Web 画面を作成しています。
ログイン認証でセッション管理を行った場合の動作について
教えて頂きたい事が御座います。
■質問1
セッションタイムアウトが発生すると、Tomcat の仕様では、
request.getSession(false);
は null を返すという仕様を確認しました。
J2SF では セッションタイムアウトすると 自動的に新しい
セッションを取得しているようですが、
これは仕様でしょうか?
■質問2
セッションタイムアウトになったか?をアクションから知る方法は
ありますでしょうか?
■質問3
セッションタイムアウトになった場合、
ユーザー名
パスワード
の入力を促す画面を再度ポップアップさせる方法はありますか?
※ Tomcat の仕様かと思われますが、こちらに質問するのは外
れているかも知れません。その場合、ポインタだけでも教えて
頂けると助かります。
■動作確認環境 及び手順
OS: Windows XP SP2
Tomcat 5.0.28
J2JSF 1.1.0
1.Basic 認証を利用してセッション管理をしています。
タイムアウト時間は1分に設定しています。
web.xml には以下の通り設定しています。
<security-constraint>
<web-resource-collection>
<web-resource-name>
Authentication of BasicAuth
</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>UserDatabaseRealm</realm-name>
</login-config>
2.S2JSF のアクションクラスへ HttpServletRequest の setter
を置き、session の状態を確認しました。
HttpSession session = request.getSession(false);
// セッションが存在する場合
if (session!=null) {
System.err.println("sessionID:"+session.getId());
}
3.このwebページでセッションタイムアウト時間 1分を経過すると、
次のように、セッション ID が再取得されました。
sessionID:D631C92D8B04AB02A5894E298547506E
:
1分経過
:
sessionID:5ECA9D68F2A0218E11D3D9EFAB3ECF5B
以上、よろしくお願い致します。
Seasar-user メーリングリストの案内