• 解决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");
        }
  • 相关阅读:
    一位年轻女董事长的忠告:不想穷下去就请看
    Ajax拓展02
    Ajax拓展
    Ajax概念及基础
    PHP了解01
    CSS3新增功能03
    CSS3新增功能02
    CSS3新增功能01
    html5介绍
    jQuery学习03
  • 原文地址:https://www.cnblogs.com/think-world/p/12306217.html
Copyright © 2020-2023  润新知