Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 限制用户访问多个日志_Java_Spring_Hibernate_Spring Security_Openjpa - Fatal编程技术网

Java 限制用户访问多个日志

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为您提

我遇到了一个必须限制用户多次登录的要求。如果用户从Firefox登录并试图通过IE登录,则应限制用户说您已经通过不同的浏览器或系统登录。我在web应用程序中使用CAS sso和spring安全性。如果可能的话,在哪里处理比较好?CAS或web应用程序启用?

要保持用户的登录状态,您需要在cookie中存储会话ID。Cookie不能在不同浏览器之间共享。因此,您可以通过存储在相应浏览器中的不同会话ID来区分不同的会话。然后,您可以了解用户是否已经从其他浏览器登录。

Spring Security为您提供了一个称为case的特殊功能。通过在http配置中添加以下标记,可以防止用户多次登录:

  <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是对用户进行身份验证的人。据我所知,这是我关于堆栈溢出的第一个问题(不记得我以前问过任何问题)。我不知道发布问题的规则。我仍在看它的演出[暂停]。管理员/版主,请做必要的工作。