【问题标题】:Spring Security - disable security dynamicallySpring Security - 动态禁用安全性
【发布时间】:2015-09-23 17:52:08
【问题描述】:

如何动态禁用 Spring Security?使用下面的代码,我的应用程序需要身份验证才能访问某些页面,但我想使用属性文件启用/禁用它。有什么建议吗?

  • Spring 安全 4
  • 我知道setting the security attribute to false in the http tag,但这需要重新编译代码,这对我来说还不够。

    <sec:http>
        <sec:intercept-url pattern="/services/**" access="hasRole('ROLE_USER')"/>
        <sec:intercept-url pattern="/app/**" access="hasRole('ROLE_ADMIN')"/>
    
        <sec:intercept-url pattern="/**" access="isAuthenticated()" />
        <sec:http-basic />
    
        <sec:csrf disabled="true" /> 
    </sec:http>
    

提前致谢。

【问题讨论】:

标签: java security properties spring-security


【解决方案1】:

假设您从数据库表中获取用户和角色。自定义一些属性文件,以便在服务器启动时适当地使用所需角色更新数据库,并且用户根据需要获取角色。所以您可以通过已经存在的安全性。(不完全是通过传递,而是根据属性文件授予角色)

注意:你必须编写一个一次性的 util 类来解析属性文件和更新数据库,这应该在服务器启动时发生。

【讨论】:

  • 是的 - 用户和角色来自数据库。我真的不明白添加一些角色和用户将如何打开或关闭安全性,或者它是多么动态(如我可以在运行时打开或关闭它),请您澄清一下吗?
  • 上述建议的方法不会动态开启或关闭spring security,而是根据properties文件根据需要改变db中的角色。
猜你喜欢
  • 2014-07-16
  • 2018-09-13
  • 2018-11-22
  • 2023-03-03
  • 2012-09-06
  • 2020-06-11
  • 2016-05-03
  • 2018-03-15
相关资源
最近更新 更多