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

Rah*_*hul 7 spring-security saml-2.0 spring-saml

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

现在我在我的java配置中定义了一个"元数据"bean,我将idp元数据添加到CachingMetadataManager中.但这只发生一次,我无法弄清楚如何在运行时向MetadataManager添加新的idp元数据(无需重新启动我的应用程序).我可以从Spring ApplicationContext获取元数据bean并为其添加新的提供程序吗?它会起作用吗?

使用spring-SAML支持上述用例(在运行时添加新的idp)的一般做法是什么?有没有其他支持这个的java库.

提前致谢

Vla*_*fer 8

CachingMetadataManager是同步的,你可以添加/删除MetadataProviders通过获取从应用程序上下文的bean并调用运行时addMetadataProvider/ removeMetadataProvider.

  • 但是,如果我这样做,客户1是否能够看到customer2配置的IDP? (2认同)