Spring Security 常见错误

半世苍凉 提交于 2020-08-07 09:43:43

登陆时提示用户已锁定。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;
	}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!