我正在集成spring-security-saml扩展以支持我的Web应用程序中的SSO,我的应用程序应该允许不同的客户将他们的IDP元数据及其证书添加到我的webapp(这是一个SP),以便我的webapp可以启动SSO反对他们的idp。
现在我在我的java配置中定义了一个“元数据”bean,我将idp元数据添加到CachingMetadataManager中。但这只发生一次,我无法弄清楚如何在运行时向MetadataManager添加新的idp元数据(无需重新启动我的应用程序)。我可以从Spring ApplicationContext获取元数据bean并为其添加新的提供程序吗?它会起作用吗?
使用spring-SAML支持上述用例(在运行时添加新的idp)的一般做法是什么?有没有其他支持这个的java库。
提前致谢
答案 0 :(得分:7)
CachingMetadataManager
已同步,您可以在运行时添加/删除MetadataProviders
,方法是从应用程序上下文中获取bean并调用addMetadataProvider
/ removeMetadataProvider
。