<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
    主站蜘蛛池模板: 国产精品偷伦视频观看免费| 亚洲AV无码一区二区三区电影| 国产成人无码免费看片软件| 免费国产美女爽到喷出水来视频| 亚洲AV成人一区二区三区观看| 小小影视日本动漫观看免费| 亚洲精品无码专区久久| 拔擦拔擦8x华人免费久久| 国产成人亚洲综合无| 亚洲AV无码一区二区三区国产| 亚洲天堂免费在线视频| 亚洲成色WWW久久网站| 久久国产乱子伦精品免费不卡| 亚洲一区二区成人| 99久久精品日本一区二区免费| 免费精品久久天干天干| 亚洲AV午夜成人片| 最近2019中文字幕免费直播| 精品日韩99亚洲的在线发布| 国产成人精品男人免费| 中文字幕免费观看视频| 亚洲综合一区二区精品久久| 无码人妻精品一二三区免费| 无码人妻一区二区三区免费视频| 亚洲精品国产成人片| 亚洲w码欧洲s码免费| 久久亚洲精品无码av| 最新亚洲成av人免费看| 亚洲美女免费视频| 亚洲一区中文字幕久久| 成人免费视频小说| a毛片免费全部播放完整成| 亚洲视频在线观看2018| 亚洲?V无码乱码国产精品| 99久久久国产精品免费蜜臀| 亚洲丶国产丶欧美一区二区三区| 亚洲精品国产V片在线观看 | 无码国产亚洲日韩国精品视频一区二区三区 | 久久国产亚洲电影天堂| 午夜私人影院免费体验区| 久久九九久精品国产免费直播|