我的项目中有这个案例:
想象一下,我们有这两行来定义 Spring Security 访问规则:
<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”,或者我必须为每一行设置完整的规则规则?