解决java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"

【解决java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id " null" 】大道之行,天下为公。这篇文章主要讲述解决java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id " null" 相关的知识,希望能为你提供帮助。
问题描述:
使用springboot,权限管理使用spring security,使用内存用户验证,但无响应报错:
java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"
解决方式
①:
创建MyPasswordEncoder类实现PasswordEncoder,加注解    @Component

@Component public class MyPasswordEncoder implements PasswordEncoder { @Override public String encode(CharSequence charSequence) { return charSequence.toString(); }@Override public boolean matches(CharSequence charSequence, String s) { return s.equals(charSequence.toString()); } }

 
@Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { //如果程序报错There is no PasswordEncoder mapped for the id "null",就将该段注释添加下边代码 //或者在MyPasswordEncoder类上加一个@Component注解,使它成为一个Bean auth.inMemoryAuthentication().withUser("admin").password("123456").authorities("ADMIN_ADD","ADMIN_FIND"); //自定义登录用户用户名和密码并赋予一些权限 }

②:
@Override protected void configure(AuthenticationManagerBuilder auth) throws Exception {//这个是使用了匿名内部类 auth.inMemoryAuthentication().passwordEncoder(new MyPasswordEncoder()).withUser("lxy").password("lxy").authorities("ADMIN_ADD","ADMIN_FIND"); }

 

    推荐阅读