doesn't work-6ren"> doesn't work-我想限制用户的 session 数。 这是我使用的示例配置(取自 here): 我没有收到任何错误,可以在 SessionReg-6ren">
gpt4 book ai didi

java - 属性 doesn't work

转载 作者:行者123 更新时间:2023-11-30 09:28:59 25 4
gpt4 key购买 nike

我想限制用户的 session 数。

这是我使用的示例配置(取自 here):

<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 ,我可以为一个用户创建 2 个 session (为此我使用了不同的浏览器)。

以下属性也没有导致任何异常:<beans:property name="exceptionIfMaximumExceeded" value="true" /> .我还尝试覆盖 equals()hashCode()对于 UserDetails 实现(如建议的那样 here )。

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

最佳答案

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

关于java - 属性 <beans :property name ="maximumSessions" value ="1"/> doesn't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13778928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com