当前位置: 代码迷 >> java >> 如何在Spring-MVC中执行用户锁定?
  详细解决方案

如何在Spring-MVC中执行用户锁定?

热度:45   发布时间:2023-07-18 08:54:12.0

我想知道如何执行用户锁定(或执行锁定操作的最佳方法),即如果用户已经从某个设备登录并尝试从另一台设备登录,则应该通知他/她会话已经存在可供该用户使用,并可以选择关闭其他会话并开始新的会话。

使用的框架是Spring-MVC + hibernate 4.1。

还有一件事:如何在应用程序上下文中设置一些用户哈希图对象的列表?

可以通过Spring Security和来完成。 您可以定义可以同时存在多少个会话,并确定如果超过最大数量该怎么办。

它们是相同的Spring Security中的简单xml配置。 首先,您必须注册SessionRegistry bean。 我已经为会话注册表使用了spring security的SessionRegistryImpl的默认类,例如:

<bean id="sessionRegistry"
        class="org.springframework.security.core.session.SessionRegistryImpl" />

之后,我们必须向容器注册ConcurrentSessionControlStrategy,并告诉它每个用户允许的最大会话数。 例:

<bean id="sessionStrategy"
    class="org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy">
    <constructor-arg name="sessionRegistry" ref="sessionRegistry" />
    <property name="maximumSessions"
        value="${security.config.sessionStrategy.maximumSessions.value}" />
    <property name="exceptionIfMaximumExceeded" value="true" />
</bean>

security.config.sessionStrategy.maximumSessions.value是在属性文件中指定的整数值。 通过更改maximumSessions属性值,我们可以轻松定义最大并发用户数。

  相关解决方案