栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SpringSecurity中的@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)与ManagementServerProperties.ACCESS_O

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringSecurity中的@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)与ManagementServerProperties.ACCESS_O

Q1。问题1:在Spring

Security中,注释的作用

@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
是什么?

您引用的文档中对它的作用进行了很好的解释。

要在不更改任何其他自动配置功能的情况下覆盖访问规则,请添加一个WebSecurityConfigurerAdapter类型的@Bean

@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)

但是

WebSecurityConfigurerAdapter
,具有的
@Order(100)
优先级更高。

没有。

您应该对此部分小心

autoconfiguredfeatures
。使用
@EnableAutoConfiguration
,它是的一部分
@SpringBootApplication
,很多东西是自动配置的,
100
不是自动配置的值,而是类上的硬编码值
WebSecurityConfigurerAdapter

您可以在

SecurityProperties
类中找到用于自动配置Spring
Security的订单值,并且可以发现的值
ACCESS_OVERRIDE_ORDER
最低,这意味着它具有最高优先级。

他们在哪里自动确认?

您可以找到

@Order(SecurityProperties.BASIC_AUTH_ORDER)
SpringBootWebSecurityConfiguration
课堂上使用的那个。

然后,当被注释

@Order(100)
WebSecurityConfigurerAdapter
使用呢?

例如,如果通过添加禁用自动配置

@EnableWebSecurity
,则将使用该值。由于该值的
100
优先级过高,因此最好
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
在您的自定义类中添加注释。

Q2。根据上述各种安全功能的顺序,如果我想覆盖管理端点和应用程序其余部分的默认规则,我应该使用什么

使用

ManagementServerProperties ACCESS_OVERRIDE_ORDER

它具有更高的优先级,因此如果要覆盖所有端点的默认规则,则必须使用它。如果您打开

ManagementServerProperties
类,则可以看到如何设置值。

SecurityProperties

int ACCESS_OVERRIDE_ORDER = SecurityProperties.BASIC_AUTH_ORDER - 2; // 39int BASIC_AUTH_ORDER = Ordered.LOWEST_PRECEDENCE - 5; // 41

ManagementServerProperties

int BASIC_AUTH_ORDER = SecurityProperties.BASIC_AUTH_ORDER - 5; // 36int ACCESS_OVERRIDE_ORDER = ManagementServerProperties.BASIC_AUTH_ORDER - 1; // 35

在注释中,

39
意味着
21474839
,为了便于阅读,我省略了前6位数字。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/402104.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号