让我解释一下我的情景,
我创建了一个spring web应用程序并部署在tomcat上。然后我打开了一个chrome浏览器并启动了该应用程序。它运行成功。然后我再次打开一个新的浏览器让我们说IE / Firefox。然后我又重新启动了我的应用程序。然后,Chrome浏览器中提供的会话应无效或重定向到“登录”页面。简单来说,我应该能够一次在一个浏览器中访问我的网页。
有没有办法用春天实现这个?或任何其他方式??
由于 纳温
答案 0 :(得分:1)
您没有说明如何进行身份验证。但是,由于您已经在使用Spring,我建议您使用具有可配置会话管理功能的Spring安全性。
使用html配置,您可以要求新会话使来自同一用户的前一个会话无效(摘自Spring安全参考手册3.2.x /安全命名空间配置/高级Web功能/会话管理):
<http>
...
<session-management>
<concurrency-control max-sessions="1" />
</session-management>
</http>
或新会话将失败:
<http>
...
<session-management>
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</session-management>
</http>
答案 1 :(得分:0)
您正在寻找的不是Java Web Container功能的开箱即用。但是,使用某些应用程序逻辑仍然可以实现这一点。以下是实现此目的的一种方法:
ConcurrentHashMap
。