spring security安全框架继承抽象类WebSecurityConfigurerAdapter后,访问路由仍然401

访问路由报错401,就说明安全框架自带的登录验证我们还没有取消。
首先需要创建一个类继承抽象类WebSecurityConfigurerAdapter

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable()
                .authorizeRequests()
                .anyRequest().permitAll()
                .and()
                .formLogin()
                .and()
                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
        http.exceptionHandling().accessDeniedHandler(new SimpleAccessDeniedHandler());
 }
 }

其中.authorizeRequests() .anyRequest().permitAll()//任意请求允许无授权访问
.csrf().disable()//禁用跨站csrf攻击防御,否则无法登录成功

配置完成之后,我发现还是报错401。
仔细排查之后发现,由于我是多模块的布局格式,忘记扫描这个类所在的包了,添加扫描即可@ComponentScan

@MapperScan("com.operative.**.mapper")
@ComponentScan(basePackages = {"com.operative.core","com.operative.auth","com.operative.main"})
@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class,args);
    }
}

不过好像不需要添加@ComponentScan也行,等后续知道了再进行补充


如果自己写了登录之后发现又启用了框架自带的登录
删掉.and().formLogin()即可

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable()
                .authorizeRequests()
                .anyRequest().permitAll()
//                .and()
//                .formLogin()
                .and()
                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
        http.exceptionHandling().accessDeniedHandler(new SimpleAccessDeniedHandler());
    }

Spring boot + Spring Security实现权限管理——参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值