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

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

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

    工作小驛

    Ninja!

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      103 Posts :: 0 Stories :: 36 Comments :: 0 Trackbacks
    對(duì)于任何一個(gè)完整的應(yīng)用系統(tǒng),完善的認(rèn)證和授權(quán)機(jī)制是必不可少的。Acegi Security(以下簡(jiǎn)稱Acegi)是一個(gè)能為基于Spring的企業(yè)應(yīng)用提供強(qiáng)大而靈活安全訪問控制解決方案的框架,Acegi已經(jīng)成為Spring官方的一個(gè)子項(xiàng)目,所以也稱為Spring Security。它通過在Spring容器中配置一組Bean,充分利用Spring的IoC和AOP功能,提供聲明式安全訪問控制的功能。雖然,現(xiàn)在Acegi也可以應(yīng)用到非Spring的應(yīng)用程序中,但在Spring中使用Acegi是最自然的方式。

    Acegi可以實(shí)現(xiàn)業(yè)務(wù)對(duì)象方法級(jí)的安全訪問控制粒度,它提供了以下三方面的應(yīng)用程序的安全:


    URL資源的訪問控制

    如所有用戶(包括其名用戶)可以訪問index.jsp登錄頁(yè)面,而只有授權(quán)的用戶可以訪問/user/addUser.jsp頁(yè)面。Acegi允許通過正則表達(dá)式或Ant風(fēng)格的路徑表達(dá)式定義URL模式,讓授權(quán)用戶訪問某一URL匹配模式下的對(duì)應(yīng)URL資源。


    業(yè)務(wù)類方法的訪問控制

    Spring容器中所有Bean的方法都可以被Acegi管理,如所有用戶可以調(diào)用BbtForum#getRefinedTopicCount()方法,而只有授權(quán)用戶可以調(diào)用BbtForum#addTopic()方法。


    領(lǐng)域?qū)ο蟮脑L問控制

    業(yè)務(wù)類方法代表一個(gè)具體的業(yè)務(wù)操作,比如更改、刪除、審批等,業(yè)務(wù)類方法訪問控制解決了用戶是否有調(diào)用某種操作的權(quán)限,但并未對(duì)操作的客體(領(lǐng)域?qū)ο螅┻M(jìn)行控制。對(duì)于我們的論壇應(yīng)用來說,用戶可以調(diào)用BbtForum#updateUser(User user)方法更改用戶注冊(cè)信息,但應(yīng)該僅限于更改自己的用戶信息,也即調(diào)用BbtForum#updateUser()所操作的User這個(gè)領(lǐng)域?qū)ο蟊仨毷鞘芟薜摹?


    Acegi通過多個(gè)不同用途的Servlet過濾器對(duì)URL資源進(jìn)行保護(hù),在請(qǐng)求受保護(hù)的URL資源前,Acegi的Servlet過濾器判斷用戶是否有權(quán)訪問目標(biāo)資源,授權(quán)者被開放訪問,而未未被授權(quán)者將被阻擋在大門之外。

    Acegi通過Spring AOP對(duì)容器中Bean的受控方法進(jìn)行攔截,當(dāng)用戶的請(qǐng)求引發(fā)調(diào)用Bean的受控方法時(shí),Acegi的方法攔截器開始工作,阻止未授權(quán)者的調(diào)用。


    對(duì)領(lǐng)域?qū)ο蟮脑L問控制建立在對(duì)Bean方法保護(hù)的基礎(chǔ)上,在最終開放目標(biāo)Bean方法的執(zhí)行前,Acegi將檢查用戶的ACL(Aeccess Control List:訪問控制列表)是否包含正要進(jìn)行操作的領(lǐng)域?qū)ο?,只有領(lǐng)域?qū)ο蟊皇跈?quán)時(shí),用戶才可以使用Bean方法對(duì)領(lǐng)域?qū)ο筮M(jìn)行處理。此外,Acegi還可以對(duì)Bean方法返回的結(jié)果進(jìn)行過濾,將一些不在當(dāng)前用戶訪問權(quán)限范圍內(nèi)的領(lǐng)域?qū)ο筇蕹簟磦鹘y(tǒng)的數(shù)據(jù)可視域范圍的控制。一般來說,使用Acegi控制數(shù)據(jù)可視域未非理想的選擇,相反通過傳統(tǒng)的動(dòng)態(tài)SQL的解決方案往往更加簡(jiǎn)單易行。


    從本質(zhì)特性上來說,Servlet過濾器就是最原始的原生態(tài)AOP,所以我們可以說Acegi不但對(duì)業(yè)務(wù)類方法、領(lǐng)域?qū)ο笤L問控制采用了AOP技術(shù)方案,對(duì)URL資源的訪問控制也使用了AOP的技術(shù)方案。使用AOP技術(shù)方案的框架是令人振奮的,這意味著,開發(fā)者可以在應(yīng)用程序業(yè)務(wù)功能開發(fā)完畢后,輕松地通過Acegi給應(yīng)用程序穿上安全保護(hù)的“鐵布衫”。
    posted on 2007-08-14 12:17 王君 閱讀(167) 評(píng)論(0)  編輯  收藏 所屬分類: J2SE
    主站蜘蛛池模板: 蜜桃精品免费久久久久影院| 一区二区三区在线免费看| 无码国产精品一区二区免费I6| 国产亚洲精品a在线无码| 国产三级在线免费观看| 亚洲伊人色欲综合网| 国产啪精品视频网站免费尤物 | 日韩免费一区二区三区在线| 亚洲无删减国产精品一区| 18观看免费永久视频| 亚洲综合亚洲国产尤物| 中文免费观看视频网站| 亚洲免费福利在线视频| 成人免费视频国产| xvideos永久免费入口| 国产亚洲精品精品国产亚洲综合| 国产免费黄色无码视频| 亚洲福利视频导航| 在线看片免费不卡人成视频| AV激情亚洲男人的天堂国语| 亚洲精品视频免费观看| 免费国产99久久久香蕉| 亚洲卡一卡2卡三卡4麻豆| 日韩a级毛片免费视频| 未满十八私人高清免费影院| 狠狠色婷婷狠狠狠亚洲综合| 91精品全国免费观看含羞草| 中文字幕亚洲精品无码| 精品亚洲一区二区三区在线播放| 久久国产精品免费观看| 亚洲熟女综合色一区二区三区 | 男女午夜24式免费视频| 久久亚洲国产成人影院| 亚洲色欲久久久久综合网| 一级毛片在线观看免费| 亚洲GV天堂GV无码男同| 亚洲AV无码乱码在线观看裸奔| 青春禁区视频在线观看直播免费| 色婷婷综合缴情综免费观看| 青青草原精品国产亚洲av| 国产99视频免费精品是看6|