Spring Security Max登录会话

ced*_*ric 4 spring-security

使用spring security我的j2ee应用程序有问题.我将并发会话控制中的max-sessions设置为1.现在,当我第二次尝试登录它会阻止我时,它工作正常.但是当我退出另一个并尝试再次登录时,我仍然收到同样的消息.

您的登录尝试未成功,请重试.原因:超出此主体的最大会话数为1

我在我的http安全性中有这个

 <security:logout logout-url="/logout.do"
  invalidate-session="true" logout-success-url="/logoutSuccess.do" />
 <security:concurrent-session-control
  max-sessions="1" exception-if-maximum-exceeded="true" expired-url="/loginform.do" />
Run Code Online (Sandbox Code Playgroud)

ajd*_*574 7

你发布这个已经有一段时间了,但如果有其他人遇到这个问题,我相信如果你不在org.springframework.security.web.session.HttpSessionEventPublisherweb.xml中添加监听器就会发生这种情况.

看到这里:

将侦听器添加到web.xml会导致每次HttpSession开始或终止时都将ApplicationEvent发布到Spring ApplicationContext.这很关键,因为它允许在会话结束时通知SessionRegistryImpl.没有它,一旦用户超过其会话限额,即使他们退出另一个会话或超时,用户也永远无法再次登录.