- PR -

j_security_checkの振る舞いを変更したい

1
投稿者投稿内容
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2004-05-26 15:30
こんにちわ。

Form認証をj_security_checkにより
設定したwebアプリケーションがあります。

本アプリケーションの認証に関する振る舞いは以下です。

1.セキュリティ区域に直接要求があり、
  かつ認証が済んでいない場合はログイン
  画面へリダイレクトする。
2.正常にログイン後、1.でリクエストされた
  URLへ自動的に要求を飛ばす。

※1.がなく直接ログイン画面から処理した場合は
 ログイン後TOP画面へ遷移する。

このような感じになると思うのですが
2.の振る舞いを変えたいと思っています。

具体的には以下の例
/webapps
 login.html
 /secutiry
  top.html
  next.html

/security配下を認証対象とした場合
ログインしないで直接
http://...../security/next.htmlを要求すると
http://...../login.htmlにリダイレクトされます。
後に正常にログインした場合
http://...../security/next.htmlを表示します。

ここで
http://...../security/next.htmlではなく、常に
http://...../security/top.htmlを表示させるよう
にしたいのですが何か方法はありますでしょうか?

web.xmlの要素を調べたのですが、それらしい要素
はないようでした。

情報あればお願い致します。

もしくは、weblogicだったらそのへん柔軟に設定
できるよ、とかでも結構です。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-05-26 15:47
>もしくは、weblogicだったらそのへん柔軟に設定
>できるよ、とかでも結構です。
そういう話はサポートに問い合わせてみてはいかがでしょうか?
せっかく商用の製品を使っているんですから。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-05-26 16:03
、と言いつつちょっと調べてみたらありますね。認証を行うAPIが。
http://edocs.beasys.co.jp/e-docs/wls/docs81/security/thin_client.html#1035574

WLS に依存しない方法で実現するとすれば referer を確認して、転送元がトップページじゃなければトップページにリダイレクトしてしまう、という方法がありますね。
トップページにリダイレクトすればやはりまだログインしていないので再度ログインページにリダイレクトされますので。

[ メッセージ編集済み 編集者: インギ 編集日時 2004-05-26 16:06 ]
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2004-05-26 16:04
引用:

インギさんの書き込み (2004-05-26 15:47) より:
>もしくは、weblogicだったらそのへん柔軟に設定
>できるよ、とかでも結構です。
そういう話はサポートに問い合わせてみてはいかがでしょうか?
せっかく商用の製品を使っているんですから。



説明不足ですいません。

検証環境はTomcat4.1で実験しています。
weblogic云々の記述については、weblogicだったら
websphereだったら、とかそのような設定が
可能な製品があったら知りたいという意味です。
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2004-05-26 16:06
引用:

インギさんの書き込み (2004-05-26 16:03) より:
、と言いつつちょっと調べてみたらありますね。認証を行うAPIが。
http://edocs.beasys.co.jp/e-docs/wls/docs81/security/thin_client.html#1035574




返信を書いていたら返信が。。

情報ありがとうございます。
見てみますー。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-05-26 16:12
なるほど。製品を購入しているわけではないんですね。
でも、評価中っていうことで相談すれば相手はしてくれますよ。少なくともBEAなら。


たぶん、ログインフォームの post 先を j_security_check ではなく、独自の認証サーブレットにすればいいわけですね。もちろんこのサーブレットを認証対象にしてはいけません。

サーブレットからは
weblogic.servlet.security.ServletAuthentication.login() を呼び出して、トップページへリダイレクトするようなコーディングをするだけだと思います。

[ メッセージ編集済み 編集者: インギ 編集日時 2004-05-26 16:14 ]
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2004-05-26 16:22
引用:

インギさんの書き込み (2004-05-26 16:12) より:
なるほど。製品を購入しているわけではないんですね。
でも、評価中っていうことで相談すれば相手はしてくれますよ。少なくともBEAなら。


たぶん、ログインフォームの post 先を j_security_check ではなく、独自の認証サーブレットにすればいいわけですね。もちろんこのサーブレットを認証対象にしてはいけません。

サーブレットからは
weblogic.servlet.security.ServletAuthentication.login() を呼び出して、トップページへリダイレクトするようなコーディングをするだけだと思います。

[ メッセージ編集済み 編集者: インギ 編集日時 2004-05-26 16:14 ]



ありがとうございます。

やっぱり独自の実装が必要なんですかねぇ。。
うまいこと設定だけで変えられるのかな、なんて
あわい期待をしていたのですが。

頂いた情報を参考にもっと調べてみます。
1

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