[Seasar-user:4967] Re: [S2JSF] セッション管理

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2006年 11月 1日 (水) 12:45:22 JST


米林です。

From: "Hiroyuki Onagi" <[E-MAIL ADDRESS DELETED]>
Sent: Tuesday, October 31, 2006 8:38 PM

> 小名木と申します。
> 
> S2JSFで Web 画面を作成しています。
> ログイン認証でセッション管理を行った場合の動作について
> 教えて頂きたい事が御座います。
> 
> ■質問1
> 
>   セッションタイムアウトが発生すると、Tomcat の仕様では、
> 
>      request.getSession(false);
>  
>   は null を返すという仕様を確認しました。
>   
>   J2SF では セッションタイムアウトすると 自動的に新しい
>   セッションを取得しているようですが、
>   これは仕様でしょうか?

はい、仕様です。
# S2JSFでは無く、S2本体の仕様です。
理由としましては、S2としてはアプリケーションが介入することなく
Sessionスコープのコンポーネントを返さないといけないので
getSession(false) にすることはできない為です。

> ■質問2
> 
>   セッションタイムアウトになったか?をアクションから知る方法は
>   ありますでしょうか?

現状アクション内で、セッションタイムアウトになったか?を
知る方法はsessionスコープのコンポーネントに値を保持させて
その値の有無で判断すれば出来そうですが、JSFとの絡みで
セッションタイムアウト直後のアクションが実行されないので
ServletFilterを使用して下さい。

> ■質問3
> 
>   セッションタイムアウトになった場合、
>   ユーザー名
>   パスワード
>   の入力を促す画面を再度ポップアップさせる方法はありますか?
> 
>   ※ Tomcat の仕様かと思われますが、こちらに質問するのは外
>     れているかも知れません。その場合、ポインタだけでも教えて
>     頂けると助かります。

ServletFilterにて、セッションの有無を見て判断出来ます。
セッションが無ければログイン画面にリダイレクト。
セッションがあっても、ログイン情報がなければ
ログイン画面にリダイレクトという感じです。

よろしくお願いします。



Seasar-user メーリングリストの案内