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