gpt4 book ai didi

java - 禁用/启用 OAuth2,无需两个安全配置

转载 作者:行者123 更新时间:2023-11-30 05:55:03 24 4
gpt4 key购买 nike

我正在开发一个使用 OAuth2 实现 SSO 的 Spring Boot 应用程序。
现在,我在安全配置上使用 @ConditionalOnProperty 注释来在需要时禁用 OAuth2:

@Configuration
@ConditionalOnProperty("some.property")
@Order(SecurityProperties.BASIC_AUTH_ORDER-3)
@EnableOAuth2Sso
public class SecurityConfigurationOAuth2 extends WebSecurityConfigurerAdapter {

我还有一个在禁用 OAuth 时使用的第二个安全配置:

@Configuration
@Order(SecurityProperties.BASIC_AUTH_ORDER-2)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

到目前为止,这是有效的,但我不喜欢有两个几乎相同的配置。属性唯一需要禁用/启用的是 @EnableOAuth2Sso 注释。

还有其他方法可以实现这一目标吗?

最佳答案

如果确实只有 @EnableOAuth2Sso 注释需要启用/禁用,是否有任何理由不能创建另一个仅具有该注释加上 @ConditionalOnProperty 或 @Profile 的配置?

虽然未经测试,但您也许可以拥有一个严格用于条件注释的嵌套配置类,如下所示:

@Configuration
@Order(SecurityProperties.BASIC_AUTH_ORDER-3)
public class SecurityConfigurationOAuth2 extends WebSecurityConfigurerAdapter {
@Configuration
@ConditionalOnProperty("some.property") // Or use a profile
@EnableOAuth2Sso
static class EnableSSOConfig {
}
....
}

关于java - 禁用/启用 OAuth2,无需两个安全配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53319003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com