java - 如何在 Java Web App 中限制每个用户一次只能进行一个 session ?

标签 java spring session authentication restriction

我在 eclipse 中使用 Tomcat 7.0、Spring 4.0.2、Web Module 3.0 作为我的 Web 应用程序。我的应用程序中有一项要求,即一个用户不得允许从两个不同的客户端登录。除此之外,我还需要考虑this .

我能想到的解决方案:
--> 在应用级别声明一个静态集
--> 每次检查之前检查用户名是否包含在该Set中,如果包含则不允许登录。
--> 每次登录Set后,在Set中添加用户名。
--> 每次从设置注销后删除用户名。

但我无法想象该解决方案在所有情况下都会失败。我认为当用户直接关闭浏览器时,这将不起作用。请帮助找出所有场景以及可以处理所有场景的正确解决方案。提前致谢。

最佳答案

Spring Security 开箱即用地支持这一点。您可以迁移您的身份验证过程以使用 Spring Security 吗?

请参阅下面的第 2.3.3 节“并发 session 管理”:

http://docs.spring.io/spring-security/site/docs/3.0.x/reference/springsecurity-single.html

关于java - 如何在 Java Web App 中限制每个用户一次只能进行一个 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23678176/

相关文章:

java - java facebook-swift、thrift 用法示例

java - 按下按钮后如何触发覆盖方法?

java - spring-data-mongodb 未正确映射整数值

Java:Spring RestControllerAdvice 异常处理程序中未触发自定义枚举 validator 注释

session - 哪些操作会导致 Coldfusion session 延长?

java - ClassNotFoundException re android.support.v4.view.ViewPager 膨胀时

java - NoClassDefFoundError : Mockito Bytebuddy

spring - 如何在 Spring Boot 服务应用程序中的 REST 服务调用之间按原样传递请求参数?

windows - 使用 SChannel (Windows) 重用 SSL session

session - AddDistributedSqlServerCache 没有将 session 保存到数据库中