- PR -

TomcatのBASIC認証について

投稿者投稿内容
P駆け出し
会議室デビュー日: 2007/02/27
投稿数: 7
投稿日時: 2007-02-27 16:24
Tomcatの認証機能を使用したいと思っているのですが、BASIC機能を用いて認証機能を実装することは出来たのですが、ログインに失敗した時にHTTPステータス401ページになら無いようにしたいのですが、どなたか判る方いらっしゃいますか?

BASICではなく、FORMを使用すれば良さそうなのですが、認証のGUIはBASICで使用するようなブラウザのログインダイアログとしたいのです...。
自作のページからブラウザログイダイアログを表示させる方法でも構いませんので、どなたか御教授願います。
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 2007-02-27 16:58
error-page要素をweb.xmlに定義してもだめですか?
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-02-27 17:11
401 Unauthorizedが返るのはRFCで定義される仕様だと思いますよ。
参考)RFC 2617 日本語訳
http://www.studyinghttp.net/cgi-bin/rfc.cgi?2617

401ページに対し、なんらかのメッセージを出したいのであれば、
web-xmlにerror-pageを設定しましょう。
P駆け出し
会議室デビュー日: 2007/02/27
投稿数: 7
投稿日時: 2007-02-27 17:23
だっちょさん、nagiseさんさそっくの返信ありがとうございます。

「認証」関連で探していたので、エラーページに関する情報を見つけられていませんでした。
反省です…。

ご指摘の通りにエラーページの定義をしてみたのですが、新たな問題として、認証が必要なページのURLをたたくと、認証の為のダイアログが表示されず、直ぐにエラーページに飛んで行くようになってしまいました。
この現象についてもお解りになりますか?
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-02-27 17:28
引用:

P駆け出しさんの書き込み (2007-02-27 17:23) より:
ご指摘の通りにエラーページの定義をしてみたのですが、新たな問題として、認証が必要なページのURLをたたくと、認証の為のダイアログが表示されず、直ぐにエラーページに飛んで行くようになってしまいました。
この現象についてもお解りになりますか?



なるほど。
分かるといえば分かりますが…。
BASIC認証は認証情報なしでのアクセスに対して401を返すのですよ。
IEだと3回ぐらい入力失敗時にリトライするのですけど、
HTTP的には毎回リクエスト送信、認証失敗で401レスポンスを返す、
ということが行われるのですね。
その際の401レスポンスがIEの3回目試行の後なのか途中なのか、
そんなことは知ったことではないので401画面が常に表示されるわけですね。

対象ブラウザはIEかな?
レスポンスのボディが何バイトか超えるとサーバから送信されたボディを表示、
少ないとIEデフォルトの画面が表示されるような問題もあったような気がしますね。
(うろ覚え。覚えている人いましたらフォロー願います)

一旦、BASIC認証に際してHTTP的にどんなやりとりがされるのか、勉強されたほうがいいですね。
その上で、何ができて何ができないか、妥協点はどこかを考えましょう。
P駆け出し
会議室デビュー日: 2007/02/27
投稿数: 7
投稿日時: 2007-02-27 17:45
引用:

nagiseさんの書き込み (2007-02-27 17:28) より:

なるほど。
分かるといえば分かりますが…。
BASIC認証は認証情報なしでのアクセスに対して401を返すのですよ。
IEだと3回ぐらい入力失敗時にリトライするのですけど、
HTTP的には毎回リクエスト送信、認証失敗で401レスポンスを返す、
ということが行われるのですね。
その際の401レスポンスがIEの3回目試行の後なのか途中なのか、
そんなことは知ったことではないので401画面が常に表示されるわけですね。

対象ブラウザはIEかな?
レスポンスのボディが何バイトか超えるとサーバから送信されたボディを表示、
少ないとIEデフォルトの画面が表示されるような問題もあったような気がしますね。
(うろ覚え。覚えている人いましたらフォロー願います)

一旦、BASIC認証に際してHTTP的にどんなやりとりがされるのか、勉強されたほうがいいですね。
その上で、何ができて何ができないか、妥協点はどこかを考えましょう。



nagiseさん、ご返信ありがとうございました。

BASIC認証についてもう少し勉強してみます。
只、1つだけ教えて頂きたいのですが、ステータス401のerror-pageを定義した場合、BASIC認証は出来ないという認識で良いのでしょうか?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-02-27 17:53
>只、1つだけ教えて頂きたいのですが、ステータス401のerror-pageを定義した場合、BASIC認証は出来ないと
>いう認識で良いのでしょうか?
いいえ。出来ます。error-page を定義しても 401 が返ることに変わりはありません。
コンテナの素っ気ないデフォルトのページよりもフレンドリーなページに設定できるだけです。

っていうかまず手を動かしてみてはいかがでしょうか・・・。そんな膨大な作業が必要になるわけではありませんから。

[ メッセージ編集済み 編集者: インギ 編集日時 2007-02-27 17:54 ]
P駆け出し
会議室デビュー日: 2007/02/27
投稿数: 7
投稿日時: 2007-02-27 18:07
引用:

インギさんの書き込み (2007-02-27 17:53) より:
いいえ。出来ます。error-page を定義しても 401 が返ることに変わりはありません。
コンテナの素っ気ないデフォルトのページよりもフレンドリーなページに設定できるだけです。

っていうかまず手を動かしてみてはいかがでしょうか・・・。そんな膨大な作業が必要になるわけではありませんから。

[ メッセージ編集済み 編集者: インギ 編集日時 2007-02-27 17:54 ]



実際に試した結果、認証用のダイアログが出なかったので質問したのですが…。

BASIC認証は出来るということですか。もう少し色々試してみます。
インギさんありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)