我正在使用Apache wicket(v 1.4)和spring(v 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>
但它似乎不起作用。
是否有任何检票方法可以帮助我吗?
答案 0 :(得分:0)
您可以手动跟踪会话/用户&#34;。
例如:使用YourApplication.java中的Set来保留当前登录的用户&#39;名。在signIn(String username, String password)
方法中,检查该用户名是否已在该集合中。覆盖Session#onInvalidate()
以从Set中删除用户名。
由于此Set是一个全局状态,因此应该同步对它的访问。