【问题标题】:How to dynamically switch application context in Spring Security?如何在 Spring Security 中动态切换应用程序上下文?
【发布时间】:2018-03-07 10:19:50
【问题描述】:

我在我的 Web 应用程序中使用 Spring 安全性,并且为此使用 Javaconfig。最近我们还在应用程序中添加了 Spring SAML 身份验证,经过一些障碍终于让它工作了。在WebApplicationInitializeronStartUp() 内部,我正在基于一些前提条件加载SpringSecurity 配置或SpringSaml 配置。

现在我该如何动态地做到这一点?实际上我会介绍一个按钮,一旦管理员点击这个按钮,所有用户都将被注销,并且应该重新加载上下文。此时如果系统在一段时间内无法访问并重新初始化应用程序上下文(这实际上是我的目标)就可以了吗?

换句话说,我如何调用WebApplicationInitializeronStartUp() 方法?

【问题讨论】:

  • 我认为可以在不重新加载spring应用上下文的情况下完成。即使您的上下文被刷新,您也可能面临其他副作用。 This question 提供了从控制器刷新应用程序上下文的方法,但最终出现了不同的问题。如果您可以分享一些配置代码,这将有助于提供更好的答案。

标签: java spring spring-security saml spring-saml


【解决方案1】:

您使用 Spring Environment Profiles 来控制加载哪些安全配置。

要切换配置文件,然后更新列出活动配置文件的配置文件,并重新加载应用程序。

Spring Boot Reference Guide - 25. Profiles

【讨论】:

  • 感谢安德烈亚斯的回答。您能否分享如何以编程方式“重新加载应用程序”。 ?
  • @aProgrammer 如果你使用spring-boot-devtools,更新配置文件会自动触发LiveReload:见Spring Boot Reference Guide - 83. Hot swapping
猜你喜欢
  • 2018-07-14
  • 2015-10-26
  • 2018-09-03
  • 2016-09-27
  • 1970-01-01
  • 2017-03-06
  • 2019-05-08
  • 2019-01-06
  • 2014-07-24
相关资源
最近更新 更多