如果身份验证不成功,我希望AuthenticationSuccessEvent不会被触发,但即使超出最大会话限制并且抛出SessionAuthenticationException,我也会收到此事件。
Java配置:
protected void configure(final HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().permitAll()
.and()
.formLogin()
.failureUrl("/login_failed.jsp")
.and()
.sessionManagement()
.maximumSessions(1)
.maxSessionsPreventsLogin(true);
}
日志记录:
<13:01:31,002> <WARN > <LoggerListener> - Authentication event AuthenticationSuccessEvent: dur; details: org.springframework.security.web.authentication.WebAuthenticationDetails@43458: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: 1e7l0cf6q88j91wg2b8aw527na
<13:01:31,002> <DEBUG> <DefaultRedirectStrategy> - Redirecting to '/login_failed.jsp'
这种行为是否有任何原因?如何记录此案例?
答案 0 :(得分:-1)
可能您正在实现自己的用户存储库和UserDetails实现。
主体是UserDetails实例,因此如果实现UserDetails,则应覆盖equals()和hashcode()。否则,该策略将无效。