- - PR -
Tomcatでフォーム認証
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-22 16:45
こちらの会議室でよかったのかわかりませんが、
Tomcatでフォーム認証をしたくて、いろいろ調べていました。 とりあえず、一番簡単な方法ということで、 ・server.xmlのRealmの設定&tomcat-users.xml ・web.xmlのsecurity-constraint、login-configあたりの設定 を行い、 フォームで、 ・j_usernameにユーザー名 ・j_passwordにパスワード を入力し、フォームのactionであるj_security_checkにPOSTする ということはわかったのですが、 この、j_security_checkってのはいったい何なのでしょうか? サンプルを実行しても、 ---- The requested resource (/jsp-examples/security/protected/j_security_check) is not available. ---- って言われます。 設定不備でしょうか? | ||||||||
|
投稿日時: 2005-11-22 17:12
設定の不備と思われます。j_security_check はサーブレットコンテナがフォーム認証を行うために予約されているパスで、
Servlet SepcI2.3 で "J2EE.12.5.3.1 Login Form Notes" に規定されています。 [ メッセージ編集済み 編集者: インギ 編集日時 2005-11-22 17:14 ] | ||||||||
|
投稿日時: 2005-11-22 17:56
すいません、実はうまくいってました。
だいたい動きを理解しました。 1.認証成功前、<form-login-page>/login.jsp</form-login-page>へ遷移。 2.認証失敗時、<form-error-page>/error.jsp</form-error-page>へ遷移。 3.認証成功後、通常通り、そのURLのコンテンツを表示。 4.認証成功後、戻って再度ログインすると、「HTTPステータス 404」。 4の状態になっていたようです。 できれば、404にならず、再認証できるようにしたいですが。 ありがとうございました。 | ||||||||
|
投稿日時: 2005-11-22 18:05
戻るというのは、ブラウザの戻るボタンで戻ったんですか? クライアントに取り込まれたキャッシュを叩いても、ログインはできませんよ。 | ||||||||
|
投稿日時: 2005-11-23 19:13
j_security_check へのリクエストが 404 という事でしょうか。 サーブレット仕様的にどうなのか解らないのですが、 Tomcat では認証済み状態での j_security_check へのリクエストは、 認証機構をスルーしてウェブアプリ側でハンドリング可能 だったと思います。 おそらく j_security_check を servlet-mapping していない でしょうから 404 なのでしょう。
上記説明により、Tomcat の認証機構に認証させるためには、 認証済み状態をクリアしなければなりません。 同じくサーブレット仕様的にどうなのか解りませんが、 Tomcat の認証情報はセッション・オブジェクトと結びついているので、 セッションを無効にすれば、j_security_check へのリクエストが 再び Tomcat の認証機構にてハンドリングされます。 ちなみに Tomcat 標準の admin アプリは、ログアウト処理で HttpSession#invalidate() しています。 | ||||||||
|
投稿日時: 2005-11-23 23:16
そうです。戻るというのは「戻るボタン」です。 no-cacheにして、セッションを切ればいけるかな?
やっぱりダメですかねぇ。 ちょっと、こちら↓を解決してから戻ってきます。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=26269&forum=12 いろいろご意見いただいている方、申し訳ございません。 | ||||||||
|
投稿日時: 2005-11-30 19:02
<form-login-page>で指定したページで外部ファイルを使うことは
できないですか? 例えば、
ログインページでは、まだそのディレクトリにアクセスする 権限を得られていないから、外部ファイルを参照できないと いうことですか? | ||||||||
|
投稿日時: 2005-12-01 10:30
security-constraints で保護設定されていないページであれば指定できます。
保護対象のページであればご認識の通り、ログインフォーム表示のタイミングではまだアクセス権がないので使えません。 |
1