@bean方法需要有条件地返回null

wqsoz72f  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(413)

我在我的系统中启用了基本身份验证,现在我正尝试使用SpringSecuritySAML集成SAMLAuth。我创建了一个返回 RelyingPartRegistrationRepository 豆子。在用户配置的值不足以创建 RelyingPartRegistration ,我必须使用空数组创建relyingpartregistrationrepository,这是不可能的,因为存在不为空的检查。另一个选项是从bean方法返回null。这也是一种失败的情况,因为在这种情况下,上下文初始化将失败。我所要做的就是要么不初始化这个bean,要么至少不阻止上下文初始化。这样我至少可以切换回基本身份验证。

xvw2m8pv

xvw2m8pv1#

你可以用 @ConditionalOn... 根据诸如属性之类的内容,有选择地启用/禁用特定bean

class MyConfiguration {
  @Bean
  @ConditionalOnProperty(name = "saml-enabled", havingValue = "true")
  public RelyingPartRegistrationRepository() { ... }
}

请参阅这篇关于baeldung的文章,以及另一篇涉及一些可能有用的其他条件的文章,当然还有官方文档。

相关问题