Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/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 mvc Spring ACL权限与角色_Spring Mvc_Spring Security - Fatal编程技术网

Spring mvc Spring ACL权限与角色

Spring mvc Spring ACL权限与角色,spring-mvc,spring-security,Spring Mvc,Spring Security,我正在开发一个使用SpringACL的业务应用程序,我希望对特定的域对象拥有粒度权限 根据,角色和权限在SpringACL中本质上是相同的。在我看来,概念上的区别在于角色具有1个或多个其他授予的权限或权限层次结构,而权限只是不在任何层次结构中的角色 因此,我希望OP\u USER\u MANAGEMENT\u PERM是一种可以授予的权限,它允许用户管理此应用程序中的其他用户。任何用户,包括普通用户,在其帐户被授予OP\u user\u MANAGEMENT\u PERM权限时,都应该能够执行这

我正在开发一个使用SpringACL的业务应用程序,我希望对特定的域对象拥有粒度权限

根据,角色和权限在SpringACL中本质上是相同的。在我看来,概念上的区别在于角色具有1个或多个其他授予的权限或权限层次结构,而权限只是不在任何层次结构中的角色

因此,我希望
OP\u USER\u MANAGEMENT\u PERM
是一种可以授予的权限,它允许用户管理此应用程序中的其他用户。任何用户,包括普通用户,在其帐户被授予
OP\u user\u MANAGEMENT\u PERM
权限时,都应该能够执行这些操作

我大部分时间都在工作,但我一直在理解ACL授权策略。出于某种原因,如果我没有:

<bean class="org.springframework.security.core.authority.GrantedAuthorityImpl">
    <constructor-arg value="OP_USER_MANAGEMENT_PERM"/>
</bean>

在这方面:

<bean id="aclAuthorizationStrategy" class="org.springframework.security.acls.domain.AclAuthorizationStrategyImpl">
    <constructor-arg>
        <list>
            <bean class="org.springframework.security.core.authority.GrantedAuthorityImpl">
                <constructor-arg value="ROLE_ADMIN"/>
            </bean>
            <bean class="org.springframework.security.core.authority.GrantedAuthorityImpl">
                <constructor-arg value="ROLE_ADMIN"/>
            </bean>
            <bean class="org.springframework.security.core.authority.GrantedAuthorityImpl">
                <constructor-arg value="OP_USER_MANAGEMENT_PERM"/>
            </bean>
        </list>
    </constructor-arg>
</bean>

然后,应用程序将不允许具有
OP\u USER\u MANAGEMENT\u PERM
的普通用户更改其他用户的权限,因为我收到以下错误
org.springframework.security.acls.model.NotFoundException:无法找到已传递权限和SID的匹配ACE

但是当我加上那个块的时候,它能工作吗?这可以吗?

我也发现了这个问题,但它并没有真正回答是否需要使用BasePermission.ADMINISTRATION来允许用户向其他用户授予权限,或者我是否可以在使用BasePermission.ADMINISTRATION的同时使用其他权限,如OP_USER_MANAGEMENT_PERM?