使用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)
你发布这个已经有一段时间了,但如果有其他人遇到这个问题,我相信如果你不在org.springframework.security.web.session.HttpSessionEventPublisherweb.xml中添加监听器就会发生这种情况.
看到这里:
将侦听器添加到web.xml会导致每次HttpSession开始或终止时都将ApplicationEvent发布到Spring ApplicationContext.这很关键,因为它允许在会话结束时通知SessionRegistryImpl.没有它,一旦用户超过其会话限额,即使他们退出另一个会话或超时,用户也永远无法再次登录.
| 归档时间: |
|
| 查看次数: |
6689 次 |
| 最近记录: |