Spring Security 3:hasRole规则是否单独检查?
我的项目中有这样一个案例: 假设我们有两行代码来定义Spring安全访问规则: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('
<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* 也许你想要这样的东西:
谢谢。我也在检查其他答案,并获得文件参考。被接受为第一个也是正确的。谢谢。我也在检查其他答案,并获得文件参考。被认为是第一个也是正确的。