|
質問させてください。 java server faces 2.1とTomcat7.0でWebアプリケーションを作成中です。 ユーザの認証はJDBCレルム方式のFORM認証で行っています。 ブラウザはIE8を使用しております。IE8は複数ウィンドウ、タブで同一セッションをできます。 またSSL通信を行っていますが、サーバ認証を行っていません(IE8のURL欄が赤色のままWebアプリケーションを実行)。 この環境で、同一セッションでブラウザを2つ立ち上げた後、 1つ目のブラウザでログアウトを実行してセッションを破棄(HttpSessionのinvalidate)します。 このとき2つ目のブラウザではWebページは表示されたままであり、 ここで画面操作(JavaServerFacesで作成したWebページにあるボタンを押下)したときに、ユーザ認証のセッションは破棄されているので、 ログインページに遷移したいのですがどうしてもできません。
JavaServerFacesのPhaseListenerインターフェースのBeforPhaseメソッドで、2つ目のブラウザのWebページで画面操作(Webページにあるボタン押下)したときのイベントを拾って、ユーザ認証のセッションは破棄されていることを確認することはできます。 しかし、その跡にFacesContext.getCurrentInstance().getExternalContext().redirectでログインページへ移動してほしいのですが、遷移してくれません。 どうすればユーザ認証が破棄されたWebページで画面操作されたときにログインページへ移動することができるでしょうか。
|