问题:
在使用springboot + spring security,使用内存用户登录时后台报错:java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"
环境:
Spring boot 2.6.1 spring security 5.6.0 jkd8
原因:
从spring security 5.X开始,需要提供一个PasswordEncorder的实例,否则后台会报错
解决:
自己写一个 PasswordEncoder 实例
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("123").password("123").roles("admin")
.and()
.withUser("321").password("321").roles("user");
}
@Bean
PasswordEncoder passwordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
重启: