- - PR -
フォーム認証でのログアウト
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-03-05 20:25
Webアプリケーションの認証機構である、フォーム認証をTomcatで行っています。
さて、「ログアウト」って皆さんやりません? 単純には、ログアウト→ログインと画面推移したいのです。 しかし、ログアウト後のログインでsubmit後、「HTTP Status 400 - フォームログインページへの無効な直接参照です」のエラーが発生します。 フォーム認証の場合って、認証した情報って、HttpServletRequestから取得できますね。 って事はクライアントから送られてくる。(クッキー?) これを再使用(?)しようとしている為なのかな? ログアウトでの処理で、この認証情報をクリア出来れば良いのでしょうが(クッキーを破棄?)、方法がわかりません。 そもそも、ログアウト→ログインのような画面推移は、どのうように実現すれば良いのでしょう? 環境 Windows2000Pro Tomcat 4.1.24 J2SDK 1.4.2_03 Struts 1.1 | ||||
|
投稿日時: 2004-03-07 13:34
ちなみにログアウト処理はどのように実装されているのですか?
| ||||
|
投稿日時: 2004-03-08 07:01
HttpSession#invalidate()を利用しましょう。
| ||||
|
投稿日時: 2004-03-08 10:14
ログアウト処理では、Anthyhimeさんがおっしゃるように、 HttpSession#invalidate() しています。 その後、メニュー画面(具体的には、menu.do・・・Struts使用なので)へ、Forwardしています。 この、menu.doには、security-constraintでsecurityをかけています。 ログアウト→ログイン→メニューと遷移して欲しいのですが、 ログアウト→メニューと遷移しているようです。 フォーム認証での認証情報は、セッションに格納されいないのではないかと思うのですが。 ログアウト後も、HttpServletRequest.getRemoteUser()で、値は取得できてしまいますし・・・。 | ||||
|
投稿日時: 2004-03-08 10:42
フォーム認証ではなく基本認証ですが、同じように
HttpSession#invalidate() してもログインユーザ情報が残ってしまう現象を確認してます。 (Tomcat4.0.6 & IE5.5、6.0ですが) 新たにIEを起動すると、ログインユーザ情報は残らないので、恐らく、 ブラウザ側にクッキーとして残ってるんじゃないかと推測してますが、 あまり深く調べたことは無いです。 # 一つのブラウザウィンドウで、複数のユーザアカウントを使い分けるという # 用途が余り無かったので、「仕様です」で逃げちゃいました あまりお役に立てませんが・・・。 | ||||
|
投稿日時: 2004-03-08 16:25
自己レスです。
forwardがまずかったようです。 rediresctでうまくいきました。 返答いただいた皆様、ありがとうございましたm(__)m | ||||
1
