1

現在、Jboss ポータル サーバーで開発されたアプリケーションにフォーム ベースのログインがあります。ログイン前の検証を行い、条件が真の場合にユーザーを別のページにリダイレクトしたいと考えています。

j_security_check ログインが実行される前にリクエストをインターセプトし、その条件が false であることが判明した後にフローを j_security_check に転送するにはどうすればよいですか。

クライアント側の検証を行いたくないことに注意してください。

これは私がやろうとしていたことですが、成功しませんでした:

LoginFilter.java ファイルを作成し、私の webapp web.xml は次のようになりました。

<filter>
  <filter-name>LoginFilter</filter-name>
  <filter-class>com.xxx.filter.LoginFilter</filter-class>
</filter>

<filter-mapping>
  <filter-name>LoginFilter</filter-name>
  <url-pattern>j_security_check</url-pattern>
</filter-mapping>

しかし、このフィルターはまったく呼び出されていません。

このコードの問題、またはこの問題を解決するための代替アプローチを教えてください。

4

1 に答える 1

0

サーバーサイドからj_security_checkを傍受することはできません。リソースが保護されている場合、フィルターとすべてはj_security_checkが渡された後にのみ呼び出されます。

同様のケースがありました。アプリケーションの呼び出し方法を変更しました。最初にhttpリクエストを作成してj_security_checkを実行し、次に同じクライアントインスタンスを使用して残りの作業を実行します。

肝心なのは、j_security_checkが最初に発生するのはサーバーであるということです。したがって、サーバーサイドからそれを傍受することはできません。

ありがとう
J

于 2012-01-19T13:04:37.903 に答える