2011-12-30 11 views
1

私は現在、Jbossポータルサーバで開発されたアプリケーションにフォームベースのログインを持っています。私はいくつかの事前ログイン検証を行い、条件が真である場合には別のページにユーザーをリダイレクトすることを望みます。j_security_checkの前にプリログインフィルタ

j_security_checkログインが実行される前にどのように要求をインターセプトし、その条件が偽であることが判明した後でも、フローをj_security_checkに転送できます。

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

これは私がやろうとしたものであるが、任意の成功を見つけることができませんでした:

はLoginFilter.javaファイルを作成し、自分のWebアプリケーションの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> 

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

このコードの問題点やこの問題を解決するための代替方法は誰にでも教えてください。

答えて

0

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

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

結論は、j_security_checkはサーバーが起こる最初のことです。だからあなたはServersideからそれを傍受することはできません。

ありがとうございます。
J

関連する問題