- - PR -
TomcatのBASIC認証について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-02-27 16:24
Tomcatの認証機能を使用したいと思っているのですが、BASIC機能を用いて認証機能を実装することは出来たのですが、ログインに失敗した時にHTTPステータス401ページになら無いようにしたいのですが、どなたか判る方いらっしゃいますか?
BASICではなく、FORMを使用すれば良さそうなのですが、認証のGUIはBASICで使用するようなブラウザのログインダイアログとしたいのです...。 自作のページからブラウザログイダイアログを表示させる方法でも構いませんので、どなたか御教授願います。 | ||||
|
投稿日時: 2007-02-27 16:58
error-page要素をweb.xmlに定義してもだめですか?
| ||||
|
投稿日時: 2007-02-27 17:11
401 Unauthorizedが返るのはRFCで定義される仕様だと思いますよ。
参考)RFC 2617 日本語訳 http://www.studyinghttp.net/cgi-bin/rfc.cgi?2617 401ページに対し、なんらかのメッセージを出したいのであれば、 web-xmlにerror-pageを設定しましょう。 | ||||
|
投稿日時: 2007-02-27 17:23
だっちょさん、nagiseさんさそっくの返信ありがとうございます。
「認証」関連で探していたので、エラーページに関する情報を見つけられていませんでした。 反省です…。 ご指摘の通りにエラーページの定義をしてみたのですが、新たな問題として、認証が必要なページのURLをたたくと、認証の為のダイアログが表示されず、直ぐにエラーページに飛んで行くようになってしまいました。 この現象についてもお解りになりますか? | ||||
|
投稿日時: 2007-02-27 17:28
なるほど。 分かるといえば分かりますが…。 BASIC認証は認証情報なしでのアクセスに対して401を返すのですよ。 IEだと3回ぐらい入力失敗時にリトライするのですけど、 HTTP的には毎回リクエスト送信、認証失敗で401レスポンスを返す、 ということが行われるのですね。 その際の401レスポンスがIEの3回目試行の後なのか途中なのか、 そんなことは知ったことではないので401画面が常に表示されるわけですね。 対象ブラウザはIEかな? レスポンスのボディが何バイトか超えるとサーバから送信されたボディを表示、 少ないとIEデフォルトの画面が表示されるような問題もあったような気がしますね。 (うろ覚え。覚えている人いましたらフォロー願います) 一旦、BASIC認証に際してHTTP的にどんなやりとりがされるのか、勉強されたほうがいいですね。 その上で、何ができて何ができないか、妥協点はどこかを考えましょう。 | ||||
|
投稿日時: 2007-02-27 17:45
nagiseさん、ご返信ありがとうございました。 BASIC認証についてもう少し勉強してみます。 只、1つだけ教えて頂きたいのですが、ステータス401のerror-pageを定義した場合、BASIC認証は出来ないという認識で良いのでしょうか? | ||||
|
投稿日時: 2007-02-27 17:53
>只、1つだけ教えて頂きたいのですが、ステータス401のerror-pageを定義した場合、BASIC認証は出来ないと
>いう認識で良いのでしょうか? いいえ。出来ます。error-page を定義しても 401 が返ることに変わりはありません。 コンテナの素っ気ないデフォルトのページよりもフレンドリーなページに設定できるだけです。 っていうかまず手を動かしてみてはいかがでしょうか・・・。そんな膨大な作業が必要になるわけではありませんから。 [ メッセージ編集済み 編集者: インギ 編集日時 2007-02-27 17:54 ] | ||||
|
投稿日時: 2007-02-27 18:07
実際に試した結果、認証用のダイアログが出なかったので質問したのですが…。 BASIC認証は出来るということですか。もう少し色々試してみます。 インギさんありがとうございました。 |