Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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 如何使用Spring Security设置管理员/超级用户角色以具有完全访问权限?_Spring Security - Fatal编程技术网

Spring security 如何使用Spring Security设置管理员/超级用户角色以具有完全访问权限?

Spring security 如何使用Spring Security设置管理员/超级用户角色以具有完全访问权限?,spring-security,Spring Security,我想根据角色限制对目录的访问,例如: <intercept-url pattern="/foo/**" access="hasRole('ROLE_FOO')"/> <intercept-url pattern="/bar/**" access="hasRole('ROLE_BAR')"/> 但我还需要一个超级用户角色,可以访问所有内容,例如: <intercept-url pattern="/**" access="hasRole('ROLE_SUPERUSER

我想根据角色限制对目录的访问,例如:

<intercept-url pattern="/foo/**" access="hasRole('ROLE_FOO')"/>
<intercept-url pattern="/bar/**" access="hasRole('ROLE_BAR')"/>
但我还需要一个超级用户角色,可以访问所有内容,例如:

<intercept-url pattern="/**" access="hasRole('ROLE_SUPERUSER')"/>
除了始终使用hasAnyRole之外,还有其他方法可以实现这一点吗?e、 g

<!-- This seems ugly, with all the repeated references. OTOH, it's explicit -->
<intercept-url pattern="/foo/**" access="hasAnyRole('ROLE_FOO', 'ROLE_SUPERUSER')"/>
<intercept-url pattern="/bar/**" access="hasRole('ROLE_BAR') or hasRole('ROLE_SUPERUSER')"/>
这看起来像是一个案例

虽然我找不到一个好方法来配置它。也许这种粗略的方法会奏效:

public class RoleHierarchyInjectionBeanPostProcessor implements BeanPostProcessor {        
    public Object postProcessAfterInitialization(Object bean, String beanName) {
        if (bean instanceof DefaultWebSecurityExpressionHandler) {
            ((DefaultWebSecurityExpressionHandler) bean).setRoleHierarchy(...);
        }
        return bean;
    }     
    ...
}
事实上,类似的问题有一个解决方案。您可以忽略关于JMX的部分,对您来说重要的是关于AccessDecisionManager和AccessDecisionVoter的讨论。其思想是注册一个定制的AccessDecisionVoter,实现if超级用户授权访问;逻辑