zoukankan      html  css  js  c++  java
  • Document

    出现问题的原因:

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

     

    解决方法:

    创建PasswordEncorder的实现类MyPasswordEncoder。

    代码一:

     1 package com.mmall.demo;
     2 
     3 import org.springframework.security.crypto.password.PasswordEncoder;
     4 
     5 public class MyPasswordEncoder implements PasswordEncoder {
     6     @Override
     7     public String encode(CharSequence rawPassword) {
     8         return rawPassword.toString();
     9     }
    10 
    11     @Override
    12     public boolean matches(CharSequence rawPassword, String encodedPassword) {
    13         return encodedPassword.equals(rawPassword);
    14     }
    15 }
    View Code

    代码二:

     1 package com.mmall.demo;
     2 
     3 import org.springframework.context.annotation.Configuration;
     4 import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
     5 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
     6 import org.springframework.security.config.annotation.web.builders.WebSecurity;
     7 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
     8 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
     9 
    10 @Configuration
    11 @EnableWebSecurity
    12 public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
    13 
    14     @Override
    15     protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    16         auth.inMemoryAuthentication().
    17                 passwordEncoder(new MyPasswordEncoder()).
    18                 withUser("admin").password("123456").roles("ADMIN");
    19     }
    20 
    21     @Override
    22     protected void configure(HttpSecurity http) throws Exception {
    23        http.authorizeRequests()
    24                .antMatchers("/").permitAll()
    25                .anyRequest().authenticated()
    26                .and()
    27                .logout().permitAll()
    28                .and()
    29                .formLogin();
    30        http.csrf().disable();
    31     }
    32 
    33     @Override
    34     public void configure(WebSecurity web) throws Exception {
    35         web.ignoring().antMatchers("/js/**","/css/**","/image/**");
    36     }
    37 
    38 
    39 }
    View Code
  • 相关阅读:
    疫情控制
    数据结构1
    NOIP 模拟 921
    ml-agents项目实践(一)
    Appium的安装及简单的使用介绍
    移动设备管理平台的搭建(基于STF/ATXServer2)
    ClickHouse利器—如何提高留存计算速度
    Linux基本操作命令
    深度学习与强化学习的两大联姻:DQN与DDPG的对比分析
    漏洞扫描软件AWVS的介绍和使用
  • 原文地址:https://www.cnblogs.com/chenyanlong/p/10688662.html
Copyright © 2011-2022 走看看