我想知道我怎么能执行用户锁定(或执行相同的最好方式),即如果是已经从一个设备登录,并尝试从其它设备登录用户,他/她应该通知会话已经可用于该用户和选项关闭其他会话并启动一个新的。
框架中使用Spring的MVC + hibernate的4.1。
还有一两件事:我怎么能在设置应用程序上下文一些用户HashMap对象的名单?
我想知道我怎么能执行用户锁定(或执行相同的最好方式),即如果是已经从一个设备登录,并尝试从其它设备登录用户,他/她应该通知会话已经可用于该用户和选项关闭其他会话并启动一个新的。
框架中使用Spring的MVC + hibernate的4.1。
还有一两件事:我怎么能在设置应用程序上下文一些用户HashMap对象的名单?
可以使用Spring Security和做Conncurrent会话控制 。 您可以定义多少会话可以同时存在,并决定是否最大超过该怎么做。
他们是在相同的弹簧安全简单的xml配置。 首先,你必须注册的SessionRegistry豆。 我已经使用缺省类春季安全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属性值,我们可以很容易地定义最大并发用户。