Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Security 3:hasRole规则是否单独检查?_Spring_Spring Security_Urlaccess - Fatal编程技术网

Spring Security 3:hasRole规则是否单独检查?

Spring Security 3:hasRole规则是否单独检查?,spring,spring-security,urlaccess,Spring,Spring Security,Urlaccess,我的项目中有这样一个案例: 假设我们有两行代码来定义Spring安全访问规则: <intercept-url pattern="/xxx/*" access="isAuthenticated() and (hasRole('roleA') or hasRole('roleB'))" /> <intercept-url pattern="/xxx/yyy*" access="isAuthenticated() and (hasRole('role1') or hasRole('

我的项目中有这样一个案例:

假设我们有两行代码来定义Spring安全访问规则:

<intercept-url pattern="/xxx/*" access="isAuthenticated() and (hasRole('roleA') or hasRole('roleB'))" /> 
<intercept-url pattern="/xxx/yyy*" access="isAuthenticated() and (hasRole('role1') or hasRole('role2'))" />

这两种模式是嵌套的,用户可以有“roleA”和“role1”或“roleA”和“role2”等角色的组合。我想要实现的是,让用户拥有“roleC”,而“role1”无法访问
/xxx/yyy*

所以我的问题是:


当具有“roleC”和“role1”的用户希望通过模式“xxx/yyy222.html”获得访问权限时,将检查访问规则的所有行,还是只检查第二行?在考虑第二行的访问规则时,我是否可以想当然地认为用户可以进入url“xxx/yyy*”中,只有“roleA”和“roleB”,或者我必须为每一行规则设置完整的规则?

拦截url按定义的顺序处理,第一个模式与请求路径匹配,决定访问

当具有“roleC”和“role1”的用户希望通过模式访问时 “xxx/yyy222.html”,将检查访问规则的所有行,还是仅检查 第二行是否已检查

这与第一行的模式匹配,访问将被拒绝

在考虑第二行的访问规则时,我可以接受吗 当然,用户可以进入url“xxx/yyy*”只有 “roleA”和“roleB”,或者我必须为每一个单曲制定完整的规则吗 规则

第二行永远不会被计算。确保首先指定更具体的模式

我想实现的是,让用户拥有“roleC”,而“role1”不能 访问/xxx/yyy*

也许你想要这样的东西:


拦截url的处理顺序是按照定义的顺序进行的,第一个模式与请求路径匹配,决定访问

当具有“roleC”和“role1”的用户希望通过模式访问时 “xxx/yyy222.html”,将检查访问规则的所有行,还是仅检查 第二行是否已检查

这与第一行的模式匹配,访问将被拒绝

在考虑第二行的访问规则时,我可以接受吗 当然,用户可以进入url“xxx/yyy*”只有 “roleA”和“roleB”,或者我必须为每一个单曲制定完整的规则吗 规则

第二行永远不会被计算。确保首先指定更具体的模式

我想实现的是,让用户拥有“roleC”,而“role1”不能 访问/xxx/yyy*

也许你想要这样的东西:



谢谢。我也在检查其他答案,并获得文件参考。被接受为第一个也是正确的。谢谢。我也在检查其他答案,并获得文件参考。被认为是第一个也是正确的。