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

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

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

    隨筆-9  評論-168  文章-266  trackbacks-0
     

    以下代碼僅有S級權限的當前用戶顯示"我的工作"區
      
    <script language="JavaScript" type="text/javascript">

    document.write('<authz:authorize ifAnyGranted="ROLE_HRCHANGE_S"> ');

        document.write('<li><a id="a1" href="#" title="我的工作">我的工作</a></li>');

    document.write('</authz:authorize>');

    </script>


    以下轉自:http://yangruirui.javaeye.com/blog/496590

    JSP頁面中的頁面元素,URL,按鈕是否可見或變灰都可通過Acegi標簽庫來實現,使用Acegi標簽庫,可設置不同的權限ID允許點擊的按鈕,訪問的URL,或隱藏無權限的功能菜單。

    如何配置和使用標簽庫?

    打開acegi-security-<chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.0.3</chsdate>.jar,在META-INF目錄中有一個authz.tld文件,將此文件復制到你的web應用的WEB-INF"tld中,然后配置web.xml,增加:

    <taglib>

    <taglib-uri>http://acegisecurity.sf.net/authz</taglib-uri>

    <taglib-location>/WEB-INF/tld/authz.tld</taglib-location>

    </taglib>

    然后JSP頁面可以通過聲明<%@ taglib uri="http://acegisecurity.sf.net/authz" prefix="authz"%>來引用標簽庫。

    聲明了標簽以后,在頁面中可以按下面的格式使用acegi標簽(authz標簽可以嵌套使用):

    <!--使用權限標簽的例子,標簽可以嵌套 -->

    <authz:authorize ifAnyGranted="AUTH_USER">

    <td> 一般用戶權限

    </td>

    <authz:authorize ifAnyGranted="AUTH_ADMIN">

    <td> 超級用戶權限

    </td>

    </authz:authorize>

    </authz:authorize>

    <authz:authorize ifAnyGranted="AUTH_SYS">

    <td> 系統維護權限

    </td>

    </authz:authorize>

    也可以在JavaScript中用document.write輸出權限標簽:

    <script language="JavaScript" type="text/javascript">

    //訂單中心

    document.write('<authz:authorize ifAnyGranted="AUTH_TAG_ORDER_CENTER"> ');

    new tree(TREE_ITEMS1, TREE_TPL);

    document.write('</authz:authorize>');

    </script>

    在有javaScript腳本中有時不方便引用acegi標簽,可以從SecurityContextHolder中獲得權限集合,然后判斷當前登錄的用戶,其權限集合中是否有某權限,根據判斷結果來決定顯示或隱藏哪些頁面元素,見下面的JSP:

    <%@ page contentType="text/html; charset=GBK"%>

    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

    <%@ taglib uri="http://acegisecurity.sf.net/authz" prefix="authz"%>

    <%@ page import="org.acegisecurity.Authentication" %>

    <%@ page import="org.acegisecurity.context.SecurityContext" %>

    <%@ page import="org.acegisecurity.context.SecurityContextHolder" %>

    <%@ page import="org.acegisecurity.userdetails.UserDetails" %>

    <%@ page import="org.acegisecurity.ui.AccessDeniedHandlerImpl" %>

    <%@ page import="org.springframework.aop.framework.ProxyFactoryBean"%>

    <%@ page import="org.springframework.context.ApplicationContext"%>

    <%@ page import="org.springframework.context.support.ClassPathXmlApplicationContext"%>

    <%@ page import="org.acegisecurity.GrantedAuthority"%>

    <%@ page import="com.mysoft.common.ValidateAcegiAuth"%>

    <%

    SecurityContext ctx = SecurityContextHolder.getContext();

    %>

    。。。

    <script language="JavaScript" type="text/javascript">

    //下面是調用自定義的類ValidateAcegiAuth,輸入當前登錄用戶的SecurityContext,及權限碼,如果有AUTH_FUN_TICKET_CHKERR權限,則執行相應的JS腳本。

    <%if(ValidateAcegiAuth.validate(ctx,"AUTH_FUN_TICKET_CHKERR")){%>

    //具有AUTH_FUN_TICKET_CHKERR 權限,執行相應js腳本…

    <%}%>

    </script>

    下面是ValidateAcegiAuth類的代碼:

    package com.mysoft.common;

    import org.acegisecurity.Authentication;

    import org.acegisecurity.context.SecurityContext;

    import org.acegisecurity.context.SecurityContextHolder;

    import org.acegisecurity.userdetails.UserDetails;

    import org.acegisecurity.ui.AccessDeniedHandlerImpl;

    import org.springframework.aop.framework.ProxyFactoryBean;

    import org.springframework.context.ApplicationContext;

    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import org.acegisecurity.GrantedAuthority;

    /**

    * 驗證權限集合中是否有某一權限

    * @author bzwang

    *

    *

    */

    public class ValidateAcegiAuth

    {

    /**

    *驗證權限集合中是否有某一權限

    * @param ctxLoginUser SecurityContext

    * @param sAuthID 權限ID

    * @return boolean 是否有指定的權限

    */

    public static boolean validate(SecurityContext ctxLoginUser,String sAuthID)

    {

    boolean bool = false;

    Authentication authLoginUser = null;

    GrantedAuthority[] arrayAuthorities = null;

    if(ctxLoginUser!=null)

    {

    authLoginUser = ctxLoginUser.getAuthentication();

    if(authLoginUser!=null)

    {

    arrayAuthorities = authLoginUser.getAuthorities();

    for(int i=0;i<arrayAuthorities.length;i++)

    {

    if(arrayAuthorities[i].toString().equals(sAuthID))

    {

    bool = true;

    break;

    }

    }

    }

    else

    {

    bool = false;

    }

    }

    else

    {

    bool = false;

    }

    return bool;

    }

    }

    posted on 2010-05-25 16:07 紫蝶∏飛揚↗ 閱讀(1395) 評論(0)  編輯  收藏 所屬分類: EXTJS
    主站蜘蛛池模板: 亚洲第一区精品观看| 免费a级毛片永久免费| 亚洲国产精品SSS在线观看AV| 在线91精品亚洲网站精品成人| 丁香花在线观看免费观看| 亚洲国产日产无码精品| 啦啦啦完整版免费视频在线观看| 亚洲第一中文字幕| **实干一级毛片aa免费| 亚洲日韩乱码久久久久久| 无码国产精品一区二区免费式直播| 亚洲蜜芽在线精品一区| 18勿入网站免费永久| 久久乐国产综合亚洲精品| 永久免费视频v片www| AV激情亚洲男人的天堂国语| 免费一看一级毛片全播放| 中文字幕高清免费不卡视频| 亚洲精品无码久久一线| 96免费精品视频在线观看| 亚洲图片中文字幕| 国产成人无码免费视频97| 一级毛片免费播放男男| 亚洲大尺度无码专区尤物| 在线成人爽a毛片免费软件| 亚洲精品国产日韩| 免费人成网站在线播放| 国产性生大片免费观看性| 亚洲经典在线中文字幕| 国产精品色午夜免费视频| 久久九九免费高清视频| 亚洲国产成人久久三区| 国产zzjjzzjj视频全免费| 在线看片免费人成视频播| 亚洲午夜成激人情在线影院| 国产做床爱无遮挡免费视频| 拍拍拍无挡视频免费观看1000| 亚洲午夜精品一区二区公牛电影院| 国产中文字幕免费观看| 久久国产乱子伦精品免费一| 亚洲七久久之综合七久久|