gpt4 book ai didi

java - UserDetails.equals() 未调用

转载 作者:行者123 更新时间:2023-11-30 04:06:05 25 4
gpt4 key购买 nike

我已经看到,如果我想在 Spring Security 中激活并发控制,我必须添加:

 <security:session-management>
<security:concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</security:session-management>

applicationContext并且:

 <listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>

web.xml

我已经做到了。我还在 UserDetails 的实现中重写了 hashCodeequals,但我仍然可以登录两次。我发现,在登录过程中,hashCode()被调用,但equals()从未被调用。

我不知道它应该如何工作,也不知道何时应该调用 equals(),有人可以帮我吗?

编辑:

@Override
public boolean equals(Object otherUser) {
if (otherUser.hashCode() == hashCode())
return true;

return false;
}

@Override
public int hashCode() {

return loginUsername.hashCode() ;
}

最佳答案

它可能确实有效。当我上次尝试这个时,我发现允许第二次登录,并且属于第一次登录的 session 被破坏。

尝试一下,看看它是否有效。如果这不是您想要的行为,那么您可能需要查看文档以查看是否可以通过配置来控制它。

关于java - UserDetails.equals() 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20685885/

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