Java 限制用户访问多个日志
我遇到了一个必须限制用户多次登录的要求。如果用户从Firefox登录并试图通过IE登录,则应限制用户说您已经通过不同的浏览器或系统登录。我在web应用程序中使用CAS sso和spring安全性。如果可能的话,在哪里处理比较好?CAS或web应用程序启用?要保持用户的登录状态,您需要在cookie中存储会话ID。Cookie不能在不同浏览器之间共享。因此,您可以通过存储在相应浏览器中的不同会话ID来区分不同的会话。然后,您可以了解用户是否已经从其他浏览器登录。Spring Security为您提供了一个称为case的特殊功能。通过在http配置中添加以下标记,可以防止用户多次登录:Java 限制用户访问多个日志,java,spring,hibernate,spring-security,openjpa,Java,Spring,Hibernate,Spring Security,Openjpa,我遇到了一个必须限制用户多次登录的要求。如果用户从Firefox登录并试图通过IE登录,则应限制用户说您已经通过不同的浏览器或系统登录。我在web应用程序中使用CAS sso和spring安全性。如果可能的话,在哪里处理比较好?CAS或web应用程序启用?要保持用户的登录状态,您需要在cookie中存储会话ID。Cookie不能在不同浏览器之间共享。因此,您可以通过存储在相应浏览器中的不同会话ID来区分不同的会话。然后,您可以了解用户是否已经从其他浏览器登录。Spring Security为您提
<http>
...
<!-- Preventing simultaneous logins -->
<session-management>
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</session-management>
...
</http>
...
...
示例直接取自官方文件。它将适用于您的IE/FF案例 谢谢你的评论。我不清楚。您能详细说明一下吗?@JackSparrow:您使用什么样的web服务器和web框架?Apache tomcat和Spring MVC与Spring Security和CAS for SSO集成。@JackSparrow:那么您如何检查用户是否已登录?请显示一小段代码。一旦用户通过CAS进行身份验证,请重定向到应用程序主页。这是一段很大的代码。很抱歉。@MaksymDemikdas:非常感谢您的回答。它救了我的头不至于撞到深坑里。让我试一试。我也需要你的建议。我正在使用带有spring security的CAS和web应用程序。我会在哪里做这件事?在CAS或web应用程序中这样做很好?不客气!您可以显示您的安全xml文件吗?通常情况下,即使是在case中,您也必须在conf中的某个地方有
http
标记。您已经准备好了所有东西。它起作用了吗?没有。它不起作用了。如果我尝试从不同的浏览器登录,那么从两个浏览器都允许登录。我应该在CAS端或web应用程序上执行此操作?因为CAS是对用户进行身份验证的人。据我所知,这是我关于堆栈溢出的第一个问题(不记得我以前问过任何问题)。我不知道发布问题的规则。我仍在看它的演出[暂停]。管理员/版主,请做必要的工作。