【问题标题】:How do i check my object permissions in spring security acl instead of using hasPermission annotation如何在 spring security acl 中检查我的对象权限而不是使用 hasPermission 注释
【发布时间】:2012-06-02 22:35:49
【问题描述】:

有没有办法直接从我的代码中检查我的类对象权限,而不是使用注释模型,

@PostAuthorize("hasPermission(returnObject, 'WRITE')")
public BaseData getSingle(Long id);

【问题讨论】:

    标签: spring spring-security acl


    【解决方案1】:

    假设您打算使用 ACL 模块,则表达式在 AclPermissionEvaluator 中实现。所以你可以用AclService 连接它的一个实例,将它注入到需要它的类中,然后直接调用hasPermission 方法。

    【讨论】:

      【解决方案2】:

      经过几次尝试,我终于可以得到解决方案,以下是代码

      acl-conf.xml

      ...
      <bean class="org.springframework.security.acls.AclPermissionEvaluator" id="permissionEvaluator">
              <constructor-arg ref="aclService"/>
      </bean>
      ...
      

      samplecontroller.java

       @Autowired
          private PermissionEvaluator permissionEvaluator ;
      
          Permission permission = BasePermission.WRITE;
         permissionEvaluator.hasPermission(authentication,aclObject,permission);
      ....
      

      希望这有帮助。

      【讨论】:

        猜你喜欢
        • 2015-09-09
        • 2013-09-30
        • 1970-01-01
        • 2011-11-20
        • 1970-01-01
        • 2013-10-14
        • 2011-09-02
        • 2014-02-18
        相关资源
        最近更新 更多