首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用/启用不带两种安全配置的OAuth2

禁用/启用不带两种安全配置的OAuth2
EN

Stack Overflow用户
提问于 2018-11-15 19:57:51
回答 1查看 460关注 0票数 1

我正在开发一个Spring Boot应用程序,它使用OAuth2实现单点登录。

现在,我在安全配置上使用@ConditionalOnProperty注释在需要时禁用OAuth2:

代码语言:javascript
运行
复制
@Configuration
@ConditionalOnProperty("some.property")
@Order(SecurityProperties.BASIC_AUTH_ORDER-3)
@EnableOAuth2Sso
public class SecurityConfigurationOAuth2 extends WebSecurityConfigurerAdapter {

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

代码语言:javascript
运行
复制
@Configuration
@Order(SecurityProperties.BASIC_AUTH_ORDER-2)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

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

有没有其他方法可以做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2018-11-16 23:52:05

如果真的只需要启用/禁用@EnableOAuth2Sso注释,那么有什么理由不能创建另一个只包含该注释加上@ConditionalOnProperty或@Profile的配置呢?

尽管没有经过测试,但您可能会有一个严格用于条件注释的嵌套配置类,如下所示:

代码语言:javascript
运行
复制
@Configuration
@Order(SecurityProperties.BASIC_AUTH_ORDER-3)
public class SecurityConfigurationOAuth2 extends WebSecurityConfigurerAdapter {
  @Configuration
  @ConditionalOnProperty("some.property")  // Or use a profile
  @EnableOAuth2Sso
  static class EnableSSOConfig {
  }
  ....
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53319003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档