【发布时间】:2019-08-06 17:00:35
【问题描述】:
我正在尝试使用 Spring Security 为 Spring Boot 2 设置会话管理,并且我有实现 UserDetails 接口的自定义类,正如我从文档中知道的那样,我需要 ovveride 方法:equals 和 hashcode
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SimpleUser that = (SimpleUser) o;
return email.equals(that.email) &&
getPassword().equals(that.getPassword());
}
public int hashCode() {
return Objects.hash(email, getPassword());
}
安全设置:
http.anyRequest().authenticated()
.and()
.addFilterAt(authenticationFilter(), UsernamePasswordAuthenticationFilter.class)
.formLogin()
.loginPage("/login")
.and()
.logout().invalidateHttpSession(true)
.logoutUrl("/logout").permitAll()
.logoutSuccessHandler(logoutSuccessHandler())
.and()
.csrf().disable()
.sessionManagement()
.maximumSessions(1)
.maxSessionsPreventsLogin(true);
这就是我所做的并且会话管理不起作用,我能够从两个不同的浏览器在一台计算机上登录,但我不知道我做错了什么,请帮助我!
【问题讨论】:
标签: spring-boot authentication spring-security spring-session