久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Struts Menu中基于角色的權(quán)限管理

 WindySky 2006-12-28


整理您的相片,。下載 Google 的相片軟件

  1.struts-menu Permissions
  
  1.1. 背景
  
  PermissionsAdapter接口,在菜單框架中定義可插入的適配器,,該適配器原來校驗(yàn)對菜單的訪問,。接口中只有一個(gè)方法:public boolean isAllowed(MenuComponent menu),參數(shù)是menu-config.xml文件中定義的一個(gè)菜單(Menu)或菜單項(xiàng)(Item),,該方法判斷該菜單是否允許被顯示,。
  
  在顯示菜單的時(shí)候,每個(gè)菜單或菜單項(xiàng)都要作為參數(shù)調(diào)用isAllowed方法,,如果返回true就顯示該菜單,,否則就不顯示菜單。
  
  Struts-menu項(xiàng)目中內(nèi)置有類RolesPermissionsAdapter實(shí)現(xiàn)了PermissionsAdapter接口,。該適配器在容器管理安全性是被用來進(jìn)行菜單訪問的驗(yàn)證,,將web.xml文件中定義的用戶安全角色映射到menu-config.xml文件中設(shè)置的菜單/菜單項(xiàng)允許訪問角色列表,。其中的角色是在。
  
  1.2. 步驟0
  
  該步驟通常是J2EE/JAAS等安全配置的一部分,。為每個(gè)用戶或用戶組分配角色,。角色是在web.xml文件中定義的。
  
  1.3. 步驟1:為菜單定義PermissionsAdapter
  
  用來顯示菜單的JSP標(biāo)記<menu:useMenuDisplayer/>標(biāo)記中有一個(gè)可選的屬性:permissions,。如果設(shè)置了該屬性,,該屬性值就作為名字,在application/request/session/page域內(nèi)查找PermissionsAdapter的對象,。然后將找到的適配器應(yīng)用到菜單的顯示中,。
  
  值得注意的是,在permissions的屬性值中有一個(gè)值是特殊處理的――rolesAdapter,。如果設(shè)置了permissions="rolesAdapter",,就說明在驗(yàn)證菜單是否顯示的過程中,不是在application/request/session/page域中查找適配器,,而是創(chuàng)建并使用新的RolesPermissionsAdapter對象,。這樣就只需要在<menu:useMenuDisplayer/>標(biāo)記中添加屬性permissions="rolesAdapter",而無需定義自己的PermissionsAdapter實(shí)現(xiàn),。
  
  1.4. 步驟2:將角色映射到menu-config.xml中的菜單/菜單項(xiàng)
  
  在menu-config.xml文件中的<Menu/>和<Item/>標(biāo)記有一個(gè)可選的屬性:roles,。該屬性在與RolesPermissionsAdapter聯(lián)合使用的時(shí)候,其值是所有可以看到該菜單/菜單項(xiàng)的角色列表,,角色之間以空格分隔,。
  
  RolesPermissionsAdapter對象會(huì)根據(jù)空格從角色列表中取得各個(gè)角色,并為每個(gè)角色調(diào)用request.isUserInRole()方法,。對于調(diào)用返回true的角色,,就顯示對應(yīng)的菜單/菜單項(xiàng)。
  
  例如,,在menu-config.xml文件中配置如下:
  
  <Menu name="PrefsMenu" title="Preferences" roles="User">
  
  <Item name="UserPrefs" title="User Preferences" page="prefs.do"/>
  
  <Item name="ModPrefs" title="Moderator Preferences"
  
  page="modPrefs.do" roles="Moderator System"/>
  
  <Item name="AdminPrefs" title="Site Preferences"
  
  page="sitePrefs.do" roles="System"/>
  
  </Menu>
  
  說明:任何User角色的用戶都能夠看到該菜單,,也就是自動(dòng)看到User Preferences菜單項(xiàng)。只有Moderator和System角色的用戶才能看到Moderator Preferences菜單項(xiàng),。而只有System角色的用戶才能夠看到Site Preferences菜單項(xiàng),。
  
  當(dāng)然,用戶看不到不等于沒有權(quán)限訪問,,用戶可以直接輸入連接進(jìn)行訪問,。因此要避免非法訪問,還要進(jìn)行必要的安全措施,。
  
  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屬性給出了兩個(gè)能夠看到該菜單的角色: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>
  

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多