2012-04-16 64 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

两件事情:1。 调用到其他过滤器后,编写代码。那样会在回应后做出反应。 2.你有一个/ *的url模式,暗示它会被永远调用。如果您有用于身份验证的url模式,那么只有在与该模式一致的url后才能调用它。 如果您有成功登录的新模式,那么它更容易,因为您可以使用它作为url-pattern定义。

相关问题