2015-04-07 55 views
5

我剛開始使用Spring Security ACL。我想獲取用戶擁有(任何)權限的域對象列表。如何獲取用戶有權使用Spring Security ACL的域對象列表?

例如,系統有1000個'建築物',用戶可以訪問任意數量的這些建築物。當用戶登錄時,我想向他們展示他們有權訪問的建築物列表。

沿myAclService.getObjectsForUser東西線('[email protected]」,Building.class)

我開始以爲ACL不朝這個方向努力,但是它必須是是一個共同的挑戰,所以至少應該有一個模式,以便如何在不重複數據的情況下實現ACL。

任何想法歡迎,謝謝!

+0

的Spring Security 4支持與Spring數據查詢參數現在。檢查文檔。 –

+0

嗨,我一直在研究docos,但不知道如何查詢參數適用於我的問題獲得域對象列表。你能夠進一步解釋嗎?謝謝 –

+0

Hi @TomCrowder你解決了這個問題嗎?我試圖找到解決相同問題的方法,因爲它尚未在spring-security-acl中實現。如果你能分享你做了什麼,那該多好。謝謝 – pVilaca

回答

1

我相信你是對的,Spring Security提供了什麼。 ACL更多來自於對象的視角,而不是來自的學科(主體)的角度。

您可以從春季安全檢查所有AclService S的SQL代碼,具體 JdbcAclServiceJdbcMutableAclService

0

您要使用的@PostFilter註釋

@PostFilter("hasPermission(filterObject, 'read') or hasPermission(filterObject, 'admin')") 
public List<Buildings> getAll(); 
+0

這不是你在找什麼?我有一些查詢實際ACL表的代碼。上面將過濾列表中當前用戶沒有權限的任何對象。 – denov

相關問題