如果他同时拥有这两个角色,则允许访问Spring Security中的用户

时间:2018-02-12 11:04:11

标签: java spring spring-mvc spring-security

我正在使用Spring Security为我的应用程序的用户提供访问权限。对于单个角色我是这样使用的:

<security:intercept-url pattern="/rest/Admin" access="hasAuthority('Admin')" />

如果他同时拥有AdminEmployee的角色,我想为特定网址提供用户访问权限,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

根据Spring Security Reference

  

要使用表达式来保护单个URL,您首先需要   将use-expressions元素中的<http>属性设置为true。   然后Spring Security将期望access属性   包含Spring EL表达式的<intercept-url>个元素。该   表达式应该评估为布尔值,定义是否访问   应该被允许还是不允许。例如:

     
<http>
    <intercept-url pattern="/admin*"
        access="hasRole('admin') and hasIpAddress('192.168.1.0/24')"/>
    ...
</http>

所以,你应该尝试使用:

<security:intercept-url pattern="/rest/Admin" 
    access="hasAuthority('Admin') and hasAuthority('Employee')" />