2016-01-18 54 views
1

我正試圖用spring安全實現一個web應用程序。我瞭解春季安全的基於角色的機制,並可以使其發揮作用。我的問題是,在我的網絡應用程序中,用戶可以創建自己的組並添加朋友(應用程序的其他用戶)。對用戶的某些頁面的訪問基於這個朋友組。它應該類似於facebook用戶和組。 如何使用spring安全性實現這些自定義用戶組和對用戶頁面的訪問?這個用例是否有默認機制?或者我應該實現我自己的數據庫表?春季自定義用戶組的安全授權

回答

0

我正在使用具有ACL機制的用戶組。基本上我確保當爲一個對象創建ACL時,所有者就被設置了。然後當另一個用戶試圖訪問這個對象時,檢查所有者的組以查看是否匹配。

這當然意味着,當用戶改變他的組,然後對象'與他同行'。

如果您不想要這種行爲,您可以將組對象的ACL作爲安全對象的父acl。然後,當用戶更改組時,應該爲組對象ACL設置正確的條目。這樣安全對象就綁定到用戶組,而不是用戶自己。

Spring Security Domain Object Security (ACLs)

+0

你知道我在哪裏可以找到網上的代碼示例嗎? – Jensebluemchen

+0

對於用戶組或ACL作爲一個整體?我相信你可以找到很多關於如何設置ACL和用戶組功能的例子(與我實現它的功能相比),與設置ACL相比,它是小菜一碟:)我基本上只是創建了我自己的** PermissionEvaluator **在checkPermission方法中,我只是從SecurityContext中檢索兩個用戶 - ACL所有者和當前用戶,然後比較他們的組。 [AclPermissionEvaluator](https://github.com/spring-projects/spring-security/blob/master/acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java) - Spring實現 – JIMI