Spring security Spring Security Max登录会话

Spring security Spring Security Max登录会话,spring-security,Spring Security,我的j2ee应用程序使用spring安全性时出现问题。我将并发会话控制中的最大会话数设置为1。现在,当我尝试第二次登录时,它可以正常工作,它会阻止我。但是当我注销另一个并尝试再次登录时,我仍然收到相同的消息 您的登录尝试未成功,请重试。 原因:超出了此主体的最大会话数1 我的http安全性中有这个 <security:logout logout-url="/logout.do" invalidate-session="true" logout-success-url="/logout

我的j2ee应用程序使用spring安全性时出现问题。我将并发会话控制中的最大会话数设置为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" />

请检查错误页面是否未缓存(按F5键),并查看日志以查看注销是否正常

  • 确保Spring安全过滤器在Struts过滤器之前运行
  • 在Spring Security的方法上设置断点。确保零件运行正常

  • 您发布此消息已经有一段时间了,但是如果其他人有此问题,我相信如果您不在web.xml中添加
    org.springframework.security.web.session.HttpSessionEventPublisher
    ,就会发生此行为

    见:


    将侦听器添加到web.xml会导致每次HttpSession开始或终止时ApplicationEvent都发布到Spring ApplicationContext。这是至关重要的,因为它允许在会话结束时通知SessionRegistryImpl。如果没有它,用户将无法在超过会话许可后再次登录,即使他们退出另一个会话或会话超时。我按了F5,消息仍然存在。这是什么意思