2012-04-16 14 views
0

私は、フォームベースの認証でJava EEのfacelets Webアプリケーションを使用しています。web.xml。フィルタまたはリスナーは、ユーザーが正常に認証された直後に呼び出されます

ユーザーが正常に認証された直後にフィルタまたはリスナーが呼び出される必要があります。 現在フィルタは追加されていますが、常に(ユーザが認証されたHTTPリクエストで、またユーザがまだ認証されている間は他のすべてのHTTPリクエストで)呼び出されます。

ユーザーが正常に認証されたHTTP要求でのみアプリケーションサーバーにフィルタを呼び出すようにするにはどうすればよいですか?

<filter> 
    <filter-name>successfullLoginFilter</filter-name> 
    <filter-class>com.example.SuccessfullLoginFilter</filter-class> 
    </filter> 

    <filter-mapping> 
    <filter-name>successfullLoginFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <login-config> 
    <auth-method>FORM</auth-method> 
    <form-login-config> 
     <form-login-page>/authentication.jsp</form-login-page> 
     <form-error-page>/login.failed</form-error-page> 
    </form-login-config> 
    </login-config> 

答えて

0

2つのことが必要です: 1.他のフィルタを呼び出した後、コードを記述します。そのようにして、それは応答後に反応するでしょう。 2./*のurlパターンは、常に呼び出されることを意味します。あなたが認証のためのurlパターンを持っているならば、それはそのパターンと一貫したURLの後でのみ呼び出されます。 成功したログインのための新しいパターンがある場合は、それをURLパターン定義として使用できるので、さらに簡単です。

関連する問題