我已经设置了我的 Spring 安全性,如下所示。我想获取这些 Controller 类中的用户 ID,以便在凭证错误时可以更新失败计数,或者如果密码已过期,我想将其重定向到重置密码页面。
提前致谢。
<beans:bean id="exceptionTranslationFilter" class="org.springframework.security.web.authentication.ExceptionMappingAuthenticationFailureHandler">
<beans:property name="exceptionMappings">
<beans:props>
<beans:prop key="org.springframework.security.authentication.BadCredentialsException">/login_error</beans:prop>
<beans:prop key="org.springframework.security.authentication.CredentialsExpiredException">/password_expired</beans:prop>
<beans:prop key="org.springframework.security.authentication.LockedException">/locked</beans:prop>
<beans:prop key="org.springframework.secuirty.authentication.DisabledException">/disabled</beans:prop>
</beans:props>
</beans:property>
</beans:bean>
<http use-expressions="true">
<form-login login-page="/login" default-target-url="/" authentication-failure-handler-ref="exceptionTranslationFilter" />
</http>
最佳答案
还有一个ApplicationListener可以添加来监听BadCredentials事件,看这个post
编辑: 添加 AuthenticationSuccessHandler 怎么样,看到这个例子:Redirect to different pages after Login with Spring Security
关于java - 当命中 ExceptionMappingAuthenticationFailureHandler 时获取 Controller 类上的用户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21655351/