springboot+springSecurity

错误信息:

    There is no PasswordEncoder mapped for the id "null"。

错误原因:

    spring security 版本在5.0后就要加个PasswordEncoder了

解决办法:

    在安全配置类(即继承了WebSecurityConfigurerAdapter)里加上

    

    @EnableWebSecurity//web安全
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    
/**
* Spring Security 报There is no PasswordEncoder mapped for the id "null"
* spring security 版本在5.0后就要加个PasswordEncoder了
* @return
*/
@Bean
    public static NoOpPasswordEncoder passwordEncoder() {
        return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
    }


/**
* 自定义配置
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/css/**","/js/**","/fonts/**","/index").permitAll()//都可以访问
.antMatchers("/users/**").hasRole("ADMIN")//需要相应的角色
.and()
.formLogin()//基于form表单登陆验证
.loginPage("/login").failureUrl("/login-error");//自定义登陆界面
}

/**
* 认证信息管理
* @param auth
* @throws Exception
*/
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()//认证信息存储于内存中
.withUser("waylau").password("123456").roles("ADMIN");
}
}

猜你喜欢

转载自blog.csdn.net/zach_king/article/details/80084503