登陆时提示用户已锁定。User account is locked
由于自定义用户对象实现了UserDetails接口,需要将接口默认方法返回值改为true即可。 public class AuthUserDetails implements UserDetails{}
登陆时提示 Bad credentials
密码匹配失败,失败的原因是由于自定义的UserDetails类重写的方法没有传入密码导致。
1@Component 2public class AuthUserDetails implements UserDetails{ 3 @Override 4 public String getPassword() { 5 // TODO Auto-generated method stub 6 return null; 7 } 8 9 10 @Override 11 public String getUsername() { 12 // TODO Auto-generated method stub 13 return null; 14 } 15 ``` 16 17 18 19 20**自定义类中的方法一定要返回实际的数据。** 21 22如 getPassword() 方法设置返回用户密码。security内部会获取该密码进行核验。 23 24如果isAccountNonLocked未设置,默认返回flase、则登录时会提示用户已被锁定。 25 26 27 28 29 30```java 31@Override 32 public Collection<? extends GrantedAuthority> getAuthorities() { 33 34 return authorities; 35 } 36 37 38 @Override 39 public String getPassword() { 40 // TODO Auto-generated method stub 41 return password; 42 } 43 44 45 @Override 46 public String getUsername() { 47 // TODO Auto-generated method stub 48 return userName; 49 } 50 51 52 @Override 53 public boolean isAccountNonExpired() { 54 // TODO Auto-generated method stub 55 return true; 56 } 57 58 59 @Override 60 public boolean isAccountNonLocked() { 61 // TODO Auto-generated method stub 62 return true; 63 } 64 65 66 @Override 67 public boolean isCredentialsNonExpired() { 68 // TODO Auto-generated method stub 69 return true; 70 } 71 72 73 @Override 74 public boolean isEnabled() { 75 // TODO Auto-generated method stub 76 return true; 77 }