麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

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屬性,表示顯示的菜單要進行角色的驗證

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩毛片网 | 国产1区视频 | 日本视频在线免费观看 | 国产午夜小视频 | 美女黄污视频 | 激情亚洲一区二区三区 | 91午夜理伦私人影院 | 国产99久久 | 91精品观看91久久久久久国产 | 成人免费看视频 | 日韩美香港a一级毛片免费 欧美一级淫片007 | 久色乳综合思思在线视频 | 免费在线观看国产精品 | 全黄裸片武则天一级第4季 九色p | 成人国产视频在线观看 | 国产91影院| 56av国产精品久久久久久久 | 99在线在线视频免费视频观看 | 欧美18—19sex性hd按摩 | 亚洲精品午夜在线 | 羞羞答答视频 | 国产日韩在线观看一区 | 日韩av有码在线 | 精品中文一区 | 国产精品中文在线 | 在线播放黄色片 | 成人一级黄色片 | 黄色毛片免费看 | 中文字幕欧美一区二区三区 | 一级黄色毛片免费 | 精品久久久久久久久久久久久 | 成人在线视频免费播放 | 亚洲精品在线观看免费 | 亚洲精品午夜电影 | 99视频观看 | 欧美视频在线一区二区三区 | 久青草免费视频 | 久久久久久亚洲国产精品 | 亚洲成人中文字幕在线 | 国产精品99久久久久久宅女 | 斗破苍穹在线免费 |