java - 当命中 ExceptionMappingAuthenticationFailureHandler 时获取 Controller 类上的用户 ID

标签 java spring-mvc spring-security

我已经设置了我的 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/

相关文章:

java - 强制 JUnit gradle 任务在项目中使用 jar 构建

java - 滚动日历未按预期持续

java - Spring security登录外部链接

java - Android,SQL 数据库故障 1 语法错误?找不到catlog正在讨论的内容

java - 如何卡住 SurfaceView 中动画的最后一帧?

java - 单击提交按钮时不执行任何操作

Spring security 自定义登录重定向冲突

intellij-idea - 如何通过身份验证所需的Spring-boot安全性

java - 将年龄(整数文字)添加到 Jena RDF 三元组,并使用 SPARQL 对其进行查询

java - 使用 Spring MVC HandlerInterceptorAdapter 从 HttpServletResponse 记录响应正文 (HTML)