如何在 spring 安全 acl 中检查我的对象权限,而不是使用 hasPermission 注释



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

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

假设您打算使用 ACL 模块,表达式在 AclPermissionEvaluator 中实现。因此,您可以将该实例与AclService连接起来,将其注入需要它的类中,并直接调用hasPermission方法。

最后,

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

ACL-conf.xml

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

采样控制器.java

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

希望这是有帮助的。

最新更新