- - PR -
BASIC認証をクリアしたい
«前のページへ
1|2|3|4
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-05-19 00:12
私が調べた範囲でも通常はそのようにするようです。 実際、サンプルもそうなっていました。 しかし、実際に動作させて見ると期待した動きにはならないので何かコツでもあるのか知りたいです。 | ||||||||
|
投稿日時: 2005-05-19 01:53
これまでの書き込みをちゃんと読んでいますか? そのような処理でログアウト処理ができるのは、クッキーやセッションIDなどでセッション管理 をしている場合です。その場合には、クッキーなどとセッションオブジェクトをアプリケーション サーバが関連づけて管理しているため、セッションオブジェクトを破棄すれば送られてきた クッキーが無効だとアプリケーションサーバが判断できるのです。 一方、BASIC認証の場合にはそのような関連付けはできないため、セッションオブジェクトを 破棄しても、ブラウザが認証情報を送ってくれば認証は有効だとしてレスポンスを返すことに なります。最初に認証情報を持ったリクエストを受け取る場合と、「ログアウト」後にリクエストを 受け取る場合との区別がアプリケーションサーバにはできないのです。 | ||||||||
|
投稿日時: 2005-05-19 09:18
なるほど。IE5 からは動作が変更されているのですね。とても参考になりました。
認証情報をブラウザが記憶していても、サイト再訪問時の初回リクエスト(ブックマークからアクセスなど)には Authorization が付かなくないですか? それで、401 (認証してね!) を受けてから Authorization を付けて送るような気がします。さらに 401 (認証無効だよ!) を受けないといけないんじゃないかと。それで 2回 必要だと思いました。 それはともかく、正しいユーザー名、パスワードに対して再入力を促すために 401 を送るのは良い方法ではないですね。ブラウザの自動送信分だけでなく人間が入力した正しい情報も初回は(セッションオブジェクトができていないので)拒否されてしまいますからね。ブラウザ環境によっては毎回、2度入力しないとログインできないということになりかねません。 | ||||||||
|
投稿日時: 2005-05-19 13:01
勘違いしておられるのかもしれませんが、今までの議論の中で HTTPレベルのBASIC認証=TOMCATが標準で提供しているBASIC認証 という話の流れから、401を返す以外方法はない、となっているような気が するのですが。。 | ||||||||
|
投稿日時: 2005-05-19 13:02
Tomcatのドキュメントからは記述を見つけられなかったのですが、
Session無効化(HttpSession#invalidate)でログアウトできるのはFORM認証で、 BASIC認証ではプログラムからの明示的なログアウトはできないようです。 FORM認証にされてはいかがでしょうか。 情報源はこちら http://www.cafesoft.com/products/cams/tomcat-security.html | ||||||||
«前のページへ
1|2|3|4
