我正在使用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