我想允许用户只创建一个当前会话。在我的情况下,它允许用户只创建一个会话,但是一旦用户注销,他就无法再次登录。
安全配置文件:
.and()
.csrf()
.and()
.exceptionHandling()
.accessDeniedPage("/accessDenied")
.and()
.sessionManagement()
.maximumSessions(1)
.expiredUrl("/login")
.maxSessionsPreventsLogin(true)
.sessionRegistry(sessionRegistry()) ;
}
@Bean
public SessionRegistry sessionRegistry() {
SessionRegistry sessionRegistry = new SessionRegistryImpl();
return sessionRegistry;
}
退出控制器:
@RequestMapping(value="/logout", method = RequestMethod.GET)
public String logoutPage (HttpServletRequest request, HttpServletResponse response) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (auth != null) {
new SecurityContextLogoutHandler().logout(request, response, auth);
}
return "redirect:/login?logout";
}
我已经尝试过无效并销毁Cookie,但仍无效。