【问题标题】:How to use role-hierarchy in Spring Security 3 with Spring EL?如何在 Spring Security 3 和 Spring EL 中使用角色层次结构?
【发布时间】:2011-01-31 17:28:52
【问题描述】:

我想在 Spring Security 的服务方法上使用 @PreAuthorize 注释。要求之一是使用角色层次结构。但默认情况下是不启用的。

我发现在 SecurityExpressionRoot 类(“表达式根对象的基类”)中有一个属性 roleHierarchy。 该类实际上确实将这个属性用于类似的方法hasRole()hasAnyRole()

我想如果我为它提供我自己的 RoleHierarchy bean,我将能够使用带有分层角色的 @PreAuthorize 注释。

如何将我的层次结构 bean 注入 SecurityExpressionRoot

【问题讨论】:

    标签: spring spring-security roles


    【解决方案1】:

    为了方法安全,您可以将RoleHierarchy 设置为DefaultMethodSecurityExpressionHandler 的属性,如下所示:

    <global-method-security ...>
        <expression-handler ref = "methodSecurityExpressionHandler" />
    </global-method-security>
    
    <beans:bean id = "methodSecurityExpressionHandler" 
        class = "org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
        <beans:property name = "roleHierarchy" .../>
    </beans:bean>
    

    【讨论】:

      猜你喜欢
      • 2016-01-03
      • 2012-12-01
      • 2019-06-21
      • 2011-11-21
      • 1970-01-01
      • 2013-10-31
      • 2011-11-03
      • 2014-11-13
      • 2016-09-06
      相关资源
      最近更新 更多