最近刚刚开始学习Spring Security的时候,发现一个问题,就是在登录用户的时候,总提示User account is locked,无法成功跳转到主页面;而且,只有在输入正确用户名的时候,才提示这个错误,而输入错误用户名的时候,则会正常报错用户名错误。
在网上找了半天也没找到原因,自己也纠结半天,最后终于在一个帖子上找到原因了:
是因为用户实体类实现UserDetails这个接口时,我默认把所有抽象方法给自动实现了,而自动生成下面这四个方法,默认返回false,
@Override
public boolean isAccountNonExpired() {
return false;
}
@Override
public boolean isAccountNonLocked() {
return false;
}
@Override
public boolean isCredentialsNonExpired() {
return false;
}
@Override
public boolean isEnabled() {
return false;
}
问题原因就在这里,只要把它们的返回值改成true就行。