我目前正在尝试在我的网站上实现记住我的功能。以下是我的配置的一部分
<security:remember-me services-ref="rememberMeServices" />
<bean id="rememberMeServices" class="com.entertainment.ecom.web.auth.EcomRemembe rMeServices">
<property name="userDetailsService" ref="ecomUserDetailsService"/>
<property name="key" value="a23eef6dfd1514cb885f47070380ff18"/>
<property name="cookieName" value="ENTC"/>
<property name="tokenValiditySeconds" value="80000"/>
</bean>
我的EcomRememberMeServices
扩展了AbstractRememberMeServices
&我覆盖了onLoginFail
和onLoginSuccess
方法。我的问题是,我的onLoginSuccess()
方法将从哪里调用?
我尝试运行上面的配置&可以看到onLoginFail
是通过RememberMeAuthenticationFilter(rememberMeServices.loginFail(request, response))
调用的,但是当我检查这个过滤器的源代码时,我找不到任何对onLoginSuccess()
或loginSuccess()
方法的调用。那么,我需要显式地调用它吗?
在BasicAuthenticationFilter
中,有一个对此方法的调用。所以我试着使用它,但是我仍然不能工作。(<http-basic/>
)。所以有人能在这方面帮我吗?
发布于 2011-03-18 21:51:32
还有一个方法logout(),它由注销过滤器调用。我猜你还必须将rememberMeServices
注入到登录和注销过滤器中(我不确定是否可以在xml元素中完成):
<bean id="logoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter">
<constructor-arg index="0" type="org.springframework.security.web.authentication.logout.LogoutSuccessHandler" ref="logoutSuccessHandler" />
<constructor-arg index="1">
<list value-type="org.springframework.security.web.authentication.logout.LogoutHandler">
<ref local="rememberMeServices"/>
</list>
</constructor-arg>
</bean>
和
<bean id="formLoginFilter" class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter">
...
<property name="rememberMeServices">
<ref local="rememberMeServices" />
</property>
</bean>
https://stackoverflow.com/questions/5345332
复制相似问题