Erlo

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

2025-08-06 16:29:28 发布   34 浏览  
页面报错/反馈
收藏 点赞

一开始接触开源框架的时候,尤其是微服务类的,需要新建一个模块来写自己的业务,这与单体应用那样毫无解耦的缠在一起区别很大。
新的模块因为解耦不仅相互独立,而且彼此之间的配置无法相互调用,这时如果你的全局配置使用了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)

图片

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认