用的挺顺手的 Spring Security 配置类,居然就要被官方弃用了?

 我来答
舒适还明净的海鸥i
2022-06-27 · TA获得超过1.7万个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:68.1万
展开全部

用过 WebSecurityConfigurerAdapter的都知道对 Spring Security 十分重要,总管 Spring Security 的配置体系。但是马上这个类要废了,你没有看错,这个类将在5.7版本被@Deprecated所标记了,未来这个类将被移除。

相关的issues已经被处理并关闭

对此对此网友大呼“学着学着就被弃用了”。既然马上要弃用了,总要有个过渡方案或者新玩法吧。

早在2021年3月份胖哥就写了一篇文章,把新玩法给明明白白说清楚了,如果你看了的话,肯定不会学废弃技术。这里把整套的替代方案再搞一遍,可别再学过时技术了。

旧玩法:

新玩法:

相关原理去看这一篇文章。

使用WebSecurity.ignoring()忽略某些URL请求,这些请求将被 Spring Security 忽略,这意味着这些URL将有受到 CSRF、XSS、Clickjacking 等攻击的可能。以下示例仅仅作为演示,请勿使用在生产环境。是不是又学到了呢?

旧玩法:

新玩法:

AuthenticationManager配置主要分为全局的(Global )、本地的(Local)。

旧玩法

上面是通过 WebSecurityConfigurerAdapter开启的是本地配置。开启全局配置需要覆写其authenticationManagerBean()方法并标记为Bean:

新玩法

本地配置通过 HttpSecurity.authenticationManager实现:

全局配置摆脱了依赖 WebSecurityConfigurerAdapter.authenticationManagerBean()方法,只需要定义一个AuthenticationManager类型的Bean即可:

当然还可以通过自定义 GlobalAuthenticationConfigurerAdapter并注入 Spring IoC 来修改 AuthenticationManagerBuilder,不限制数量,但是要注意有排序问题。相关的思维导图:

很多技术方案都不是直接更改的,是会有一个变化的过程,只要你紧追变化,其实也就没有变化。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式