我正在使用Spring Security ACL。当我保存一个对象时,我还创建了一个新的ACE(访问控制条目)。我用这个方法:在Spring Security中授予权限Acl
acl.insertAce(acl.getEntries().size(), BasePermission.CREATE, recipient, true);
我想知道如果我这样做是正确的时候我调用此方法一个时刻为货主(即增加它的身份验证的用户)应具备的所有权限和同为当局?
例子:
如果谁添加条目也应该具有读访问权的用户我调用此一次:
acl.insertAce(acl.getEntries().size(), BasePermission.READ, recipient, true);
等等?这是它应该被正确使用的方式吗?
这是正常的,既有权威机构和校长在ACL或只是校长。我的意思是,你混在@PreAuthorize
hasRole('ROLE_ADMIN')
和hasPermission(...)
或者你有在ACL两校长和主管部门,所以你只能使用hasPermission(...)
谢谢。一个问题,但。你是否在'acl_entry'表中插入了一个用于ROLE_ADMIN的ACE,即使你使用'hasRole('...')'? – LuckyLuke
我个人不会将ROLE_ADMIN插入到acl_entry中。如果您选择将其插入到acl_entry表中,则可以跳过此检查“hasRole('ROLE_ADMIN')”。如果你的用户是'ROLE_ADMIN',那么他将在他授权的权限列表中出现这个角色 - 这是Spring Security ACL在评估有权时要检查的内容(#entity,'ADMINISTRATION') - 它会做与通过调用hasRole来手动检查它。 – SergeyB
Okey,谢谢。我会尽你所能去做,如果由于某种原因,我会稍后改变:) – LuckyLuke