记录一下新建模块时关于Spring Security的相关配置类


一开始接触开源框架的时候,尤其是微服务类的,需要新建一个模块来写自己的业务,这与单体应用那样毫无解耦的缠在一起区别很大。
新的模块因为解耦不仅相互独立,而且彼此之间的配置无法相互调用,这时如果你的全局配置使用了Spring Security,
无论写多少MVC结构的Restful接口,都一定是无法测试成功的,而报错原因也都是401 UNAUTHORIZED
在这种情况下,所有的请求都被Spring Security的默认拦截器拦截,无法到达后端。(Shiro等框架我没有试过,其他框架的默认规则也许和Spring不同)
所以为了让请求顺利通过验证,就需要配置SecurityConfigurer类,在旧版本的springframework包里采用的是WebSecurityConfigurerAdapter,
而在Spring Security 5.7.0及更高版本(包括Spring Boot 2.7.0+)中,WebSecurityConfigurerAdapter被标记为已弃用,并在Spring Security 6.0中被完全移除。
但无论新版本还是旧版本我们要做的事都是一样,那就是找到那个传参为HttpSecurity类型的方法,并直接调用。
在Spring Security旧版本中,我们重写configure方法,并调用.antMatchers对接口进行放行

   @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {
    .antMatchers("/xxx").permitAll()
    }

关闭跨域配置是调用

 httpSecurity.csrf().disable()

在Spring Security新版本中,我们则基于Bean注解配置filterChain方法对接口进行放行
如果要关闭跨域配置的话只需调用

.csrf(AbstractHttpConfigurer::disable)