代码之家  ›  专栏  ›  技术社区  ›  Aleksey Otrubennikov

如何将SpringSecurity3中的角色层次结构与SpringEL一起使用?

  •  4
  • Aleksey Otrubennikov  · 技术社区  · 14 年前

    我想在具有Spring安全性的服务方法上使用@preauthorize注释。其中一个要求是使用角色层次结构。但默认情况下,它是不启用的。

    我发现在 安全表达式根 类(“表达式根对象的基类”)有一个属性 Rolehierarchy公司。 类实际上对如下方法使用了此属性 角色() HasAnyRole()。 .

    我想如果我自己提供的话 角色管理学 bean i将能够使用@preauthorize对具有层次角色的注释进行授权。

    如何将层次bean注入 安全表达式根 ?

    1 回复  |  直到 14 年前
        1
  •  7
  •   axtavt    14 年前

    对于方法安全性,您可以设置 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>