<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 14,  comments - 37,  trackbacks - 0
     

    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="ModPrefs" title="Moderator Preferences"

                 page="modPrefs.do" roles="Moderator System"/>

        <Item name="AdminPrefs" title="Site Preferences"

                 page="sitePrefs.do" roles="System"/>

    </Menu>

    說明:任何User角色的用戶都能夠看到該菜單,也就是自動看到User Preferences菜單項。只有ModeratorSystem角色的用戶才能看到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屬性,表示顯示的菜單要進行角色的驗證

    posted on 2007-07-11 10:13 冰封的愛 閱讀(149) 評論(0)  編輯  收藏 所屬分類: J2EE
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(3)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 99爱在线观看免费完整版| 亚洲综合小说久久另类区| 毛片免费视频在线观看| 暖暖免费日本在线中文| 免费国产高清毛不卡片基地| 亚洲最大中文字幕| 国产亚洲一区二区三区在线| 免费欧洲美女牲交视频| 午夜a级成人免费毛片| 7m凹凸精品分类大全免费| CAOPORN国产精品免费视频| 亚洲av无码专区在线观看下载| 亚洲成av人片在线看片| 亚洲人成电影亚洲人成9999网 | 午夜高清免费在线观看| 久久www免费人成看片| 免费在线看黄网站| 两性色午夜视频免费网| 又粗又长又爽又长黄免费视频| 亚洲av永久中文无码精品综合| 亚洲最大成人网色香蕉| 亚洲精品mv在线观看| 中文字幕亚洲综合久久| 亚洲av之男人的天堂网站| 国产美女亚洲精品久久久综合| 亚洲av无码国产精品色在线看不卡| 日韩特黄特色大片免费视频| 成人黄软件网18免费下载成人黄18免费视频 | 亚洲精品久久久久无码AV片软件| 亚洲小视频在线播放| aa毛片免费全部播放完整| 精品亚洲麻豆1区2区3区| 亚洲成AV人在线播放无码| 自拍偷自拍亚洲精品情侣| 亚洲性色成人av天堂| 国产男女爽爽爽爽爽免费视频| 韩国免费A级毛片久久| 国产亚洲精品2021自在线| 中文字幕 亚洲 有码 在线| 色播亚洲视频在线观看| 国产亚洲成av片在线观看|