美文网首页
Spring boot 的内存用户验证-无响应解决方法

Spring boot 的内存用户验证-无响应解决方法

作者: 柳源居士 | 来源:发表于2018-05-10 00:20 被阅读2085次

    Spring boot 2.0.1引用的security 依赖是 spring security 5.X版本,此版本需要提供一个PasswordEncorder的实例,否则后台汇报错误:
    java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"
    并且页面毫无响应。
    因此,需要创建PasswordEncorder的实现类。

    import org.springframework.security.crypto.password.PasswordEncoder;
    
    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());
        }
    }
    

    此类使用了最简单的明文密码作为测试。

    在内存用户验证里添加

     protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth.inMemoryAuthentication().passwordEncoder(new MyPasswordEncoder())
                    .withUser("admin").password("123456").roles("ADMIN","USER").and()
                    .withUser("user").password("111").roles("USER");
        }
    

    .passwordEncoder(new MyPasswordEncoder())
    这样,页面提交时候,密码以明文的方式进行匹配。

    相关文章

      网友评论

          本文标题:Spring boot 的内存用户验证-无响应解决方法

          本文链接:https://www.haomeiwen.com/subject/lbyarftx.html