我們正在構建Java Web應用程序。我們使用EJB容器和JPA與Wildfly 9.2。如何僅將EJB角色授予某些實體
現在我們想要整合一個用戶具有特定角色的權限系統,但是這個角色只能與某個實體組合授予。我將命名這個訪問資源部門。
因此,我們將有權限的列表存儲在這樣一個表中的用戶:
| User ID | Department | Role |
| ------- | ---------- | ------- |
| 1 | A | MANAGER |
| 1 | B | ADMIN |
| 2 | B | MANAGER |
此外,我們有全球性的角色。用戶具有一組全局角色,如果上述表中沒有涉及有關部門的條目,則將應用該全局角色。
| User ID | Role |
| ------- | ------- |
| 1 | VIEWER |
| 3 | MANAGER |
我們如何輕鬆檢查某個用戶是否在特定角色下給予某個部門?
通過使用註釋@RolesAllowed,我們可以檢查某個角色,但不限於某個部門。
過濾器如何?給定一個URL,是否知道哪個部門將被該URL訪問?如果用戶不在這些部門中,則拒絕該請求。無論解決方案是什麼,當重組和部門改變時會發生什麼? –
或EJB層上可能的攔截器。 –
謝謝你的建議。我們當然會研究這一點。 我們目前也在研究Apache Shiro。這可能會滿足我們的要求。 –