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);
  }
}

在控制台进行打印的结果,存到数据库中,就可以了。