0
我尝试使用spring security ACL强制执行一个新应用程序,在读完一些内容后,我对每个ACE的权限都有问题。我期待,如果一个主体拥有的域对象实例的行政许可(16)能够与此批注来访问的方法:春季安全acl管理权限
@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')")
它似乎工作。
所以,我的问题是:这些权限是不是分层的?
我的意思是,为什么我必须明确指定具有读取权限的方法的管理权限?不是管理员比阅读“更大”吗?
我在想,如果我授予用户一个管理权限,即用户将能够访问所有使用“较低”操作(C,R,U,D)保护的方法/对象而不是管理员。
好的,谢谢澄清。 –