登录后(将用户重定向到哪个url)发生什么情况,由处理AuthenticationSuccessHandler
。
该接口(实现它的具体类SavedRequestAwareAuthenticationSuccessHandler)
由方法中的AbstractAuthenticationProcessingFilter
或子类之一(UsernamePasswordAuthenticationFilter)
调用successfulAuthentication。
因此,为了在情况3中进行其他重定向,你必须继承子类SavedRequestAwareAuthenticationSuccessHandler并使其执行你想要的操作。
有时(取决于你的确切用例)足以启用由(的的超类)调用其useReferer标志。AbstractAuthenticationTargetUrlRequestHandlerSimpleUrlAuthenticationSuccessHandlerSavedRequestAwareAuthenticationSuccessHandler
<bean id="authenticationFilter"
class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter">
<property name="filterProcessesUrl" value="/login/j_spring_security_check" />
<property name="authenticationManager" ref="authenticationManager" />
<property name="authenticationSuccessHandler">
<bean class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler">
<property name="useReferer" value="true"/>
</bean>
</property>
<property name="authenticationFailureHandler">
<bean class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler">
<property name="defaultFailureUrl" value="/login?login_error=t" />
</bean>
</property>
</bean>