spring security 密码校验——用户输入的密码和数据库密码值
如果控制台抛异常:security.authentication.BadCredentialsException
一定一定要仔细检查数据库密码,绝大概率就是这里的问题。
先检查数据库存的密码是否是在securityConfig配置类里注入的加密方法,加密后的结果
eg:用security自带的BC加密
public class SecurityConfig extends WebSecurityConfigurerAdapter
{
//创建BCryptPasswordEncoder注入容器
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
}
那么可以在主方法进行测试:
public class SpringBootSecurityApplication {
public static void main(String[] args) {
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
//raw1是用户输入的密码
String raw1 = "cb2e6f1a703cbc1c7009b95f4709274c";
//encode1是用户输入密码加密后的结果
String encodeS1 = passwordEncoder.encode(raw1);
System.out.println("15680612913:"+encodeS1);
}
}
在控制台进行打印的结果,存到数据库中,就可以了。