登陆时提示用户已锁定。User account is locked
由于自定义用户对象实现了UserDetails接口,需要将接口默认方法返回值改为true即可。 public class AuthUserDetails implements UserDetails{}
登陆时提示 Bad credentials
密码匹配失败,失败的原因是由于自定义的UserDetails类重写的方法没有传入密码导致。
@Component
public class AuthUserDetails implements UserDetails{
@Override
public String getPassword() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getUsername() {
// TODO Auto-generated method stub
return null;
}
```
**自定义类中的方法一定要返回实际的数据。**
如 getPassword() 方法设置返回用户密码。security内部会获取该密码进行核验。
如果isAccountNonLocked未设置,默认返回flase、则登录时会提示用户已被锁定。
```java
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return authorities;
}
@Override
public String getPassword() {
// TODO Auto-generated method stub
return password;
}
@Override
public String getUsername() {
// TODO Auto-generated method stub
return userName;
}
@Override
public boolean isAccountNonExpired() {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean isAccountNonLocked() {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean isCredentialsNonExpired() {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean isEnabled() {
// TODO Auto-generated method stub
return true;
}
来源:oschina
链接:https://my.oschina.net/u/4157150/blog/4281668