【发布时间】:2012-06-02 22:35:49
【问题描述】:
有没有办法直接从我的代码中检查我的类对象权限,而不是使用注释模型,
@PostAuthorize("hasPermission(returnObject, 'WRITE')")
public BaseData getSingle(Long id);
【问题讨论】:
标签: spring spring-security acl
有没有办法直接从我的代码中检查我的类对象权限,而不是使用注释模型,
@PostAuthorize("hasPermission(returnObject, 'WRITE')")
public BaseData getSingle(Long id);
【问题讨论】:
标签: spring spring-security acl
假设您打算使用 ACL 模块,则表达式在 AclPermissionEvaluator 中实现。所以你可以用AclService 连接它的一个实例,将它注入到需要它的类中,然后直接调用hasPermission 方法。
【讨论】:
经过几次尝试,我终于可以得到解决方案,以下是代码
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);
....
希望这有帮助。
【讨论】: