【问题标题】:Can you configure Spring-Security programmatically?你能以编程方式配置 Spring-Security 吗?
【发布时间】:2010-06-07 23:59:28
【问题描述】:

我正在使用现有应用程序配置 Spring-Security,仅用于基本安全性(即用户可以根据其角色查看哪些页面)。出现的问题是想知道我们是否可以在 java 中而不是 ApplicationContext.xml 中设置每个页面所需的角色。

我们的想法是将它们存储在我们数据库的一个表中,这样我们就可以轻松地更改它们而无需重新部署。这可能吗?怎么样?

【问题讨论】:

    标签: java spring-security


    【解决方案1】:

    是的,您可以通过编程方式配置 Spring-Security。但我认为这不是你想要/需要做的。

    问题来了想知道我们是否可以在 java 中而不是 ApplicationContext.xml 中设置每个页面所需的角色。

    您可以实现自己的AccessDecisionManager 类,该类查询您的数据库以获取每个资源/页面的规则(或其他规则)。这在 SpringSecurity 手册的Section IV 中有描述。

    或者,您可以在 MVC 控制器中嵌入自己的自定义访问控制逻辑。使用SpringSecurityContext 获取请求的Authorization 对象,找出身份和/或权限,并根据需要执行决策。

    【讨论】:

    • 感谢您指出我真正需要的东西。我刚刚完成了它的设置,它似乎工作得很好。
    【解决方案2】:

    我们使用拦截器做到了这一点。基本上 MethodInterceptor 代理对您想要的任何方法的任何调用(即从数据库中获取对象)。然后,您可以以编程方式拦截对象并检查当前用户,并在访问控制方面做几乎任何您想做的事情。如果这意味着在数据库中查询有权访问的用户列表(因此您可以在不修改代码的情况下更改列表),那就这样吧。

    【讨论】:

      猜你喜欢
      • 2015-02-04
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多