我正在嘗試使用Apache Shiro框架來保護我的Web應用程序(UI基於Vaadin 6)。通過Shiro網站上的所有示例,並搜索了幾個小時,但我無法找到一個乾淨的方式來處理以下要求。如何使用Apache Shiro處理分層角色/權限?
假設應用程序是一種項目管理工具,用戶正在創建活動,屬於公司層次結構中的特定部門。每個用戶可以在多個部門工作,並且在每個部門中具有不同的安全角色。例如:
Department A - User is 'Manager' here Department B Department C - User is 'Admin' here Department D
用戶是在部門A 「用戶管理器」是在部ç 用戶「管理」也應該繼承「管理」爲部d(這是系的C祖先)的作用。
所以,基本的權限檢查(假設我要查看屬於一些部門的活動)將是:
- 檢查活動用戶試圖查看所屬部門用戶有一定作用;
- 檢查用戶是否需要基於他的角色在此部門的許可。
我目前停留在理解如何實施不僅僅是「系統廣角」,而是「在這個特定部門的作用」的概念。
如何將上面的示例轉換爲像「activity:view:123」這樣的權限字符串?我將如何檢查業務邏輯中的權限?
另一個疑問是Shiro的實現,我想使用一些開箱即用的解決方案將最小的努力提供我自己的實現。但是,Shiro的內置實現似乎只適用於簡單情況。是否有任何複雜的授權實施示例(可以涵蓋上述情況)?