Hop*_*ing 11 java spring spring-mvc spring-security spring-boot-actuator
问题1:在Spring Security中,功能究竟是什么
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
Spring文档陈述如下,但我不确定我是否理解清楚
要在不更改任何其他自动配置功能的情况下覆盖访问规则,请添加类型为WebSecurityConfigurerAdapter的@Bean
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER).
Spring Security中各种安全功能的排序如下所述(LowestValue即最高优先级即最高优先级,即最低优先级)
Ordered.HIGHEST_PRECEDENCE = -2 ^ 31-1Access_Override_Order = Basic_Auth_Order -2对于安全属性Access_Override_Order = Basic_Auth_Order -1for ManagementServerProperties
Basic_Auth_Order-2 = 2 ^ 31-7 Basic_Auth_Order = Ordered.Lowest_Precendence -5 = 2^31-5Ordered.LOWEST_PRECEDENCE = 2^31问题2 根据上面各种安全功能的排序,如果我想覆盖管理端点和应用程序其余部分的默认规则,我应该使用
我目前正在使用,SecurityProperties ACCESS_OVERRIDE_ORDER但根据这里的建议 让ACTUATOR工作,我需要启用ManagementServerProperties ACCESS_OVERRIDE_ORDER.如果我想要两个都工作,我应该覆盖哪一个?
谢谢.
Aja*_*tan 14
SecurityProperties不再为 @Order 注释定义ACCESS_OVERRIDE_ORDER常量。但是,如果应用程序定义了任何安全细节,Spring Boot 不再定义任何安全细节,因此我们不需要安全性 @Configuration 类上的 @Order 注释,可以将其删除。
San*_*Lee 10
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)什么?它所做的工作在你引用的文档中得到了很好的解释.
要在不更改任何其他自动配置功能的情况下覆盖访问规则,请添加类型为WebSecurityConfigurerAdapter的@Bean
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER).
但是WebSecurityConfigurerAdapter,它具有@Order(100)更高的优先级.
没有.
你应该小心这一部分autoconfigured features.使用@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)注释放在自定义类中.
使用ManagementServerProperties ACCESS_OVERRIDE_ORDER.
它需要更高的优先级,因此如果要覆盖所有端点的默认规则,则必须使用它.如果打开ManagementServerProperties类,可以看到如何设置值.
在 SecurityProperties
int ACCESS_OVERRIDE_ORDER = SecurityProperties.BASIC_AUTH_ORDER - 2; // 39
int BASIC_AUTH_ORDER = Ordered.LOWEST_PRECEDENCE - 5; // 41
Run Code Online (Sandbox Code Playgroud)
在 ManagementServerProperties
int BASIC_AUTH_ORDER = SecurityProperties.BASIC_AUTH_ORDER - 5; // 36
int ACCESS_OVERRIDE_ORDER = ManagementServerProperties.BASIC_AUTH_ORDER - 1; // 35
Run Code Online (Sandbox Code Playgroud)
在评论中,39意思是21474839,为了便于阅读,我省略了前6位数字.
| 归档时间: |
|
| 查看次数: |
12874 次 |
| 最近记录: |