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

Posted

技术标签:

【中文标题】如何在运行时在 spring-SAML 中添加新的 idp 元数据【英文标题】:How to add new idp metadata in spring-SAML at runtime 【发布时间】:2015-01-24 14:44:10 【问题描述】:

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

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

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

提前致谢

【问题讨论】:

您是否正确实施了这个,如果是,如何? 您能否为像您这样遇到此问题的其他人分享解决方案? 【参考方案1】:

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

【讨论】:

但是如果我这样做,customer1 不能看到 customer2 配置的 IDP 吗? @articuno 与客户 1 和客户 2 相关的实施是否顺利?怎么分开?

以上是关于如何在运行时在 spring-SAML 中添加新的 idp 元数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 VBA 将事件添加到运行时在 Excel 中创建的控件

如何在没有Javascript调试的情况下在网站启动时在Visual Studio中启动新的Chrome实例?

我想在代码部署运行时在新的自动扩展组替换的EC2实例上运行脚本

ADFS 拒绝 spring-saml 元数据

如何在运行时在php中重写URL

如何在运行WSL时在Windows中设置VS代码调试?