解决SpringBoot 项目使用数据库用户授权登录Security报java.lang.IllegalArgumentException: There is no PasswordEncoder问题

今天在使用Springboot集合Springsecurity的时候,报了一个java.lang.IllegalArgumentException: There is no PasswordEncoder,查了好久才找到了答案,我是使用数据库用户来登录和验证的,因为我用的是security 1.5.0以上的版本,其增加了多种的加密方式,也改变了密码的形式,或许是为了增加安全系数才这样做,也就要求我们要将密码通过加密算法处理过后才存入数据库,具体做法如下:
先写一个测试类,用于将数据库的密码加密:
解决SpringBoot 项目使用数据库用户授权登录Security报java.lang.IllegalArgumentException: There is no PasswordEncoder问题_第1张图片
将打印出来的密文复制存入数据库即可。

然后在实现了WebSecurityConfigurerAdapter类的WebSecurityConfig中的configure方法(具体方法名可能因人而异)中加入“.passwordEncoder(new BCryptPasswordEncoder())”,相当于是将前端传过来的密码进行加密处理,再与数据库中加密过的密码进行比对。
解决SpringBoot 项目使用数据库用户授权登录Security报java.lang.IllegalArgumentException: There is no PasswordEncoder问题_第2张图片保存之后,重启项目即可。

你可能感兴趣的:(JAVA,SpringBoot,Spring,security,报错)