Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 房地产<;bean:property name=";“最大会议次数”;值=”;1“/&燃气轮机;不';行不通_Java_Spring_Session_Spring Security - Fatal编程技术网

Java 房地产<;bean:property name=";“最大会议次数”;值=”;1“/&燃气轮机;不';行不通

Java 房地产<;bean:property name=";“最大会议次数”;值=”;1“/&燃气轮机;不';行不通,java,spring,session,spring-security,Java,Spring,Session,Spring Security,我想限制用户的会话数 下面是我使用的一个配置示例: <http> <custom-filter position="CONCURRENT_SESSION_FILTER" ref="concurrencyFilter" /> <custom-filter position="FORM_LOGIN_FILTER" ref="myAuthFilter" /> <session-management session-authentication-s

我想限制用户的会话数

下面是我使用的一个配置示例:

<http>
  <custom-filter position="CONCURRENT_SESSION_FILTER" ref="concurrencyFilter" />
  <custom-filter position="FORM_LOGIN_FILTER" ref="myAuthFilter" />

  <session-management session-authentication-strategy-ref="sas"/>
</http>

<beans:bean id="concurrencyFilter"
   class="org.springframework.security.web.session.ConcurrentSessionFilter">
  <beans:property name="sessionRegistry" ref="sessionRegistry" />
  <beans:property name="expiredUrl" value="/session-expired.htm" />
</beans:bean>

<beans:bean id="myAuthFilter" class=
   "org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter">
  <beans:property name="sessionAuthenticationStrategy" ref="sas" />
  <beans:property name="authenticationManager" ref="authenticationManager" />
</beans:bean>

<beans:bean id="sas" class=
 "org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy">
  <beans:constructor-arg name="sessionRegistry" ref="sessionRegistry" />
  <beans:property name="maximumSessions" value="1" />
</beans:bean>

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

我没有收到任何错误,可以在
SessionRegistry
中查看用户数。但是
maximumSessions
的值是
1
,我可以为一个用户创建两个会话(我使用了不同的浏览器)

以下属性也没有导致任何异常:
。我还尝试为UserDetails实现重写
equals()
hashCode()
(正如建议的那样)


为什么我可以使用此
maximumSessions
值为一个用户登录两次?我应该以其他方式限制会话数吗?任何建议都将不胜感激,提前谢谢。

我的错,我没有正确地用
EqualsBuilder
重写equals方法。如图所示,在实际需要比较之前,我有
.appendSuper(super.equals(obj))
行,所以即使是相同的用户详细信息也不同。没有这条线一切都很好,我不能登录两次