我正在用Apache wicket(1.4版)和spring(3.2版)开发一个web应用程序,我需要防止用户同时从两个不同的地方登录。
我尝试使用spring安全并发控制来实现这一点,我在我的xml中添加了以下内容
<security:http create-session="never" auto-config="true">
<security:remember-me />
<security:intercept-url pattern="/**" />
<security:session-management>
<security:concurrency-control
max-sessions="1" error-if-maximum-exceeded="true"/>
</security:session-management>
</security:http>但它似乎不起作用。
有什么办法吗?有没有人能帮帮我?
发布于 2015-10-20 03:54:08
您可以“手动”跟踪会话/用户。
例如:使用YourApplication.java中的集合来保存当前登录的用户名。在您的signIn(String username, String password)方法中,检查此用户名是否已经在集合中。覆盖Session#onInvalidate()可从集合中删除用户名。因为这个集合是一个全局状态,所以对它的访问应该是同步的。
https://stackoverflow.com/questions/33207056
复制相似问题