我尝试覆盖自定义Spring安全hashCode
中的equals
和userDetails
方法,以限制应用程序中的并发会话。根据我的研究,如果你有一个自定义UserDetailsService
实现,你必须覆盖这些方法,以便并发策略工作。我试过这个,但似乎没有用。实现这个的正确方法是什么?
@Override
public boolean equals(Object otherUser) {
ProcnetUserDetails other = (ProcnetUserDetails) otherUser;
if (other.getUsername().hashCode() == hashCode()){
return true;
}
return false;
}
@Override
public int hashCode() {
return this.systemUser.getUsername().hashCode() ;
}
答案 0 :(得分:2)
更改您的等于方法以比较userNames
,而不是他们的hashCodes
return getUserName().equals(other.getUserName()));
不等的对象可以具有相同的hashCode
,因此您当前的实现肯定是错误的。
话虽如此,你还没有提出问题。