UserDetial.getPassword返回null
if (!passwordEncoder.matches(password, userDetails.getPassword())) {
throw new BadCredentialsException("密码不正确");
}
问题描述:
passwordEncoder.matches() 参数一个未加密和一个加密的变量。加密的变量是使用Springboot的BCryptPasswordEncoder加密得来。加密密码通过查询数据库获取。已经设置到UserDetail里面了。
这段代码,password变量的值是"password",userDetails.getPassword()返回值是空值。
解决途径:
需要解决userDetails.getPassword()返回空值的问题,密码其实已经在变量里面了
解决:getPassword方法没有重写,会一直返回null
@Override
public String getPassword() {
return null;
}
@Override
public String getPassword() {
return umsAdmin.getPassword();
}