我尝试使用Spring安全ACL强制执行一个新的应用程序,经过一些阅读后,我对每个ACE的权限都有问题。我期望如果主体对域对象实例具有管理权限(16),则能够访问具有此批注的方法:
@Override
@PostFilter("hasPermission(filterObject, 'READ')")
public List<Project> findAllProjects() {
TypedQuery<Project> tq = em.createNamedQuery("Project:findAll", Project.class);
List<Project> projects = tq.getResultList();
return projects;
}
但是
@PostFilter("hasPermission(filterObject, 'ADMINISTRATION') OR hasPermissions(filterObject,'READ')")
它似乎有用。答案 0 :(得分:0)
简短回答:不,权限不是开箱即用的分层。
如果您希望它们是分层的,您需要制作PermissionEvaluator
或类似的自定义实现。