Java 如何在SpringMVC中执行用户锁定?

Java 如何在SpringMVC中执行用户锁定?,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,我想知道如何执行用户锁定(或执行锁定的最佳方式),即,如果用户已从设备登录并尝试从其他设备登录,则应通知他/她该用户已经有可用的会话,并提供关闭其他会话和启动新会话的选项 框架采用SpringMVC+Hibernate4.1 还有一件事:如何在应用程序上下文中设置某个用户hashmap对象的列表?这可以通过Spring安全性和。您可以定义并发存在的会话数量,并决定如果最大会话数超过该会话数,该怎么办。它们在spring security中是一个简单的xml配置。首先,您必须注册SessionRe

我想知道如何执行用户锁定(或执行锁定的最佳方式),即,如果用户已从设备登录并尝试从其他设备登录,则应通知他/她该用户已经有可用的会话,并提供关闭其他会话和启动新会话的选项

框架采用SpringMVC+Hibernate4.1


还有一件事:如何在应用程序上下文中设置某个用户hashmap对象的列表?

这可以通过Spring安全性和。您可以定义并发存在的会话数量,并决定如果最大会话数超过该会话数,该怎么办。

它们在spring security中是一个简单的xml配置。首先,您必须注册SessionRegistry bean。我为会话注册表使用了spring security的SessionRegistryImpl默认类,如:

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

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

<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属性值,我们可以轻松定义最大并发用户。

还有其他基本方法吗?我的意思是不使用spring安全性。您可以编写自己的一个,方法是使用检测会话是否已创建的?