定義的用戶角色,我有自己的境界類擴展AppservPasswordLoginModule和AppservRealm,我在數據庫中獲取用戶和角色從我自己的表。在web.xml中,我定義了對頁面的訪問並且它可以工作。 我有一些機制來從我的豆與@SessionScoped註釋我menu.xml文件文件中讀取主菜單。 我想使用規則從web.xml中只顯示這個項目,其中用戶具有存取權限(在web.xml中定義),而不會在我menu.xml文件文件重複配置。 我想,解決方案可能是檢查頁面的訪問權限,當我在SessionScoped bean中爲此頁面創建菜單項時,但我不知道如何輕鬆檢查它。 這種情況的最佳解決方案是什麼? 我使用的是GlassFish 4.1和JSF 2.2。顯示的菜單項目根據在web.xml中
0
A
回答
0
我解決了這個通過下面的方法:
在我ServletListener
@WebListener
public class implements ServletListener ServletContextListener {...}
我從web.xml中讀取安全性約束,解析他們並將其存儲在我的@ApplicationScoped豆。
在@SessionScoped豆,在@PostConstruct標註的方法,我得到存儲在@ApplicationScoped豆的所有角色和
FacesContext.getCurrentInstance().GetExternalContext().IsUserInRole(role);
方法檢查每一個人。
所以我目前所有的用戶角色。然後,在我的@SessionScoped豆,每個菜單項我檢查由該菜單項的URL表示的資源是否是可用於當前用戶具有角色。
編輯:這個解決方案的壞處是,我只分析web.xml文件,沒有註釋
相關問題
- 1. 顯示/隱藏的菜單項目根據登錄的用戶
- 2. 顯示菜單和菜單項目
- 3. Android選項菜單根本不顯示
- 4. 如何根據另一個菜單的子菜單項目(Joomla 2.5)顯示菜單
- 5. 選擇在ExtJS中顯示或不顯示菜單項目
- 6. Winforms中的禁用菜單項目仍顯示子項目
- 7. Asp.net菜單根據訪問級別顯示不同的菜單項
- 8. 根據誰登錄確定要顯示的菜單項
- 9. 根據選定的錨點突出顯示菜單項?
- 10. Asp.net 4.0根據訪問級別顯示不同的菜單項
- 11. 根據菜單選項只顯示想要的div
- 12. 顯示選中的菜單項必須在父項中顯示
- 13. Joomla菜單隻顯示當前(根)菜單子項
- 14. PHP根據變量的值顯示菜單/子菜單
- 15. 顯示菜單項
- 16. 選項顯示在菜單
- 17. 如何根據用戶在angularjs中的角色顯示不同的菜單項?
- 18. AppleScript顯示Apple菜單欄項目
- 19. 切換菜單列表項目顯示
- 20. 菜單未顯示所有項目
- 21. Android彈出菜單不顯示項目
- 22. 根據條件顯示或隱藏上下文菜單項
- 23. 根據當前頁面突出顯示菜單項
- 24. 如何根據下拉選項顯示隱藏下拉菜單
- 25. 根據渲染視圖突出顯示菜單/子菜單
- 26. 如何在左側菜單中顯示主菜單的子項目
- 27. Django根據URL顯示列表項目
- 28. 根據用戶顯示項目
- 29. 在上下文菜單標題中顯示選定的項目
- 30. 顯示之前在下拉菜單中選擇的項目