国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Struts Menu中基于角色的權限管理

2019-11-18 12:54:44
字體:
來源:轉載
供稿:網友

  1.struts-menu Permissions
  
  1.1. 背景
  
  PermissionsAdapter接口,在菜單框架中定義可插入的適配器,該適配器原來校驗對菜單的訪問。接口中只有一個方法:public boolean isAllowed(MenUComponent menu),參數是menu-config.xml文件中定義的一個菜單(Menu)或菜單項(Item),該方法判定該菜單是否答應被顯示。
  
  在顯示菜單的時候,每個菜單或菜單項都要作為參數調用isAllowed方法,假如返回true就顯示該菜單,否則就不顯示菜單。
  
  Struts-menu項目中內置有類RolesPermissionsAdapter實現了PermissionsAdapter接口。該適配器在容器治理安全性是被用來進行菜單訪問的驗證,將web.xml文件中定義的用戶安全角色映射到menu-config.xml文件中設置的菜單/菜單項答應訪問角色列表。其中的角色是在。
  
  1.2. 步驟0
  
  該步驟通常是J2EE/JAAS等安全配置的一部分。為每個用戶或用戶組分配角色。角色是在web.xml文件中定義的。
  
  1.3. 步驟1:為菜單定義PermissionsAdapter
  
  用來顯示菜單的jsp標記<menu:useMenuDisplayer/>標記中有一個可選的屬性:permissions。假如設置了該屬性,該屬性值就作為名字,在application/request/session/page域內查找PermissionsAdapter的對象。然后將找到的適配器應用到菜單的顯示中。
  
  值得注重的是,在permissions的屬性值中有一個值是非凡處理的――rolesAdapter。假如設置了permissions="rolesAdapter",就說明在驗證菜單是否顯示的過程中,不是在application/request/session/page域中查找適配器,而是創建并使用新的RolesPermissionsAdapter對象。這樣就只需要在<menu:useMenuDisplayer/>標記中添加屬性permissions="rolesAdapter",而無需定義自己的PermissionsAdapter實現。
  
  1.4. 步驟2:將角色映射到menu-config.xml中的菜單/菜單項
  
  在menu-config.xml文件中的<Menu/>和<Item/>標記有一個可選的屬性:roles。該屬性在與RolesPermissionsAdapter聯合使用的時候,其值是所有可以看到該菜單/菜單項的角色列表,角色之間以空格分隔。
  
  RolesPermissionsAdapter對象會根據空格從角色列表中取得各個角色,并為每個角色調用request.isUserInRole()方法。對于調用返回true的角色,就顯示對應的菜單/菜單項。
  
  例如,在menu-config.xml文件中配置如下:
  
  <Menu name="PrefsMenu" title="Preferences" roles="User">
  
  <Item name="UserPrefs" title="User Preferences" page="prefs.do"/>
  
  <Item name="Mod  
  page="modPrefs.do" roles="Moderator System"/>
  
  <Item name="AdminPrefs" title="Site Preferences"
  
  page="sitePrefs.do" roles="System"/>
  
  </Menu>
  
  說明:任何User角色的用戶都能夠看到該菜單,也就是自動看到User Preferences菜單項。只有Moderator和System角色的用戶才能看到Moderator Preferences菜單項。而只有System角色的用戶才能夠看到Site Preferences菜單項。
  
  當然,用戶看不到不等于沒有權限訪問,用戶可以直接輸入連接進行訪問。因此要避免非法訪問,還要進行必要的安全措施。
  
  1.5. 示例(rolesMenu.
jsp
  
  1.5.1. menu-struts.xml文件中
  
  <Menu name="Permissions" title="Permissions" roles="tomcat,role1">
  
  <Item title="Change" location="permissionsForm.jsp"/>
  
  </Menu>
  
  roles屬性給出了兩個能夠看到該菜單的角色:tomcat,role1
  
  1.5.2. JSP頁面中
  
  <menu:useMenuDisplayer name="ListMenu"
  
  bundle="org.apache.struts.action.MESSAGE"
  
  permissions="rolesAdapter">
  
  <menu:displayMenu name="ToDoListMenuFile"/>
  
  <menu:displayMenu name="ToDoListMenuEdit"/>
  
  <menu:displayMenu name="Permissions"/>
  
  </menu:useMenuDisplayer>
  
  給出permissions屬性,表示顯示的菜單要進行角色的驗證

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 佛冈县| 于田县| 浦北县| 类乌齐县| 竹北市| 常宁市| 曲阜市| 姜堰市| 玉林市| 华安县| 苍南县| 汉中市| 哈尔滨市| 福海县| 上思县| 金山区| 陈巴尔虎旗| 金寨县| 井陉县| 邵阳县| 瓮安县| 西吉县| 涿鹿县| 南和县| 闽清县| 手游| 绿春县| 安多县| 会同县| 新余市| 静安区| 镇康县| 洞口县| 留坝县| 平顺县| 方正县| 彭泽县| 乡宁县| 花莲县| 富川| 兴安盟|