Spring security 如何在运行时在spring SAML中添加新的idp元数据

Spring security 如何在运行时在spring SAML中添加新的idp元数据,spring-security,saml-2.0,spring-saml,Spring Security,Saml 2.0,Spring Saml,我正在集成spring security saml扩展以支持我的web应用程序中的SSO,我的应用程序应允许不同的客户将其IDP元数据和证书添加到我的webapp(这是一个SP),以便我的webapp可以针对其IDP启动SSO 现在我正在java配置中定义一个“元数据”bean,在这里我将idp元数据添加到CachingMetadataManager。但这种情况只发生一次,我无法弄清楚如何在运行时将新的idp元数据添加到MetadataManager(而不重新启动我的应用程序)。我可以从Spri

我正在集成spring security saml扩展以支持我的web应用程序中的SSO,我的应用程序应允许不同的客户将其IDP元数据和证书添加到我的webapp(这是一个SP),以便我的webapp可以针对其IDP启动SSO

现在我正在java配置中定义一个“元数据”bean,在这里我将idp元数据添加到CachingMetadataManager。但这种情况只发生一次,我无法弄清楚如何在运行时将新的idp元数据添加到MetadataManager(而不重新启动我的应用程序)。我可以从SpringApplicationContext获取元数据bean并向其添加一个新的提供者吗?行吗

使用SpringSAML支持上述用例(在运行时添加新的idp)的一般做法是什么?是否有其他java库支持此功能


提前感谢

同步了
cachingmetadatadatamanager
,您可以在运行时通过从应用程序上下文获取bean并调用
addMetadataProvider
/
removeMetadataProvider
来添加/删除
MetadataProvider

,但是如果我这样做,customer1难道看不到customer2配置的IDP吗?@articuno与customer1和customer2相关的实现是否成功?您将如何将其分离?您是否正确地实现了这一点,如果是,如何实现?您能否为像您这样遇到此问题的其他人共享解决方案?