<source id="4vppl"><ins id="4vppl"></ins></source>
<u id="4vppl"><sub id="4vppl"><label id="4vppl"></label></sub></u>
<object id="4vppl"></object>
  • <u id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></u>

    <object id="4vppl"></object>
    <b id="4vppl"><sub id="4vppl"><tr id="4vppl"></tr></sub></b>

      <i id="4vppl"><thead id="4vppl"></thead></i>

      <thead id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></thead>

      當(dāng)前位置:首頁(yè) > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 設(shè)計(jì)軟件教程 > acegi參考手冊(cè)(v1.0.4)[譯]-第二章 技術(shù)概覽[下]

      acegi參考手冊(cè)(v1.0.4)[譯]-第二章 技術(shù)概覽[下]
      2010-01-13 23:23:08  作者:  來(lái)源:

      2.4. 安全對(duì)象

      如果你熟悉AOP,你會(huì)知道有很多種advice可用:before, after, throws aroundaround advice非常有用,因?yàn)樗軌蜻x擇是否選擇是否執(zhí)行一個(gè)方法調(diào)用,是否修改返回值,以及是否拋出異常。Acegi Security對(duì)方法調(diào)用和web請(qǐng)求都提供around advice。我們使用AOP聯(lián)盟實(shí)現(xiàn)對(duì)方法調(diào)用的around advice,對(duì)于web請(qǐng)求的around advice則是使用標(biāo)準(zhǔn)的過(guò)濾器(Filter)。

       

      對(duì)于那些不熟悉AOP的人來(lái)說(shuō),關(guān)鍵是要理解Acegi Security能夠幫助你保護(hù)方法調(diào)用以及web請(qǐng)求。大多數(shù)人對(duì)保護(hù)他們服務(wù)層的方法調(diào)用感興趣。這是因?yàn)樵诋?dāng)前的J2EE應(yīng)用中,服務(wù)層包含了大多數(shù)的業(yè)務(wù)邏輯(聲明,作者不贊成這種設(shè)計(jì),反而支持正確封裝的領(lǐng)域模型以及DTOassembly, facade 以及 transparent persistence patterns,而不是當(dāng)前主流的貧血模型,我們將在這里討論)。如果你需要保護(hù)service層的方法調(diào)用,使用標(biāo)準(zhǔn)的Spring AOP平臺(tái)(或者被成為AOP 聯(lián)盟(AOP Alliance))就足夠了。如果你需要直接對(duì)領(lǐng)域模型進(jìn)行保護(hù),那么可以考慮使用AspectJ

       

      你可以選擇對(duì)使用AspectJ 或者AOP聯(lián)盟(AOP Alliance)對(duì)方法進(jìn)行授權(quán),或者你可以選擇使用過(guò)濾器(filter)來(lái)對(duì)web請(qǐng)求進(jìn)行授權(quán)。你將0個(gè),1個(gè),2個(gè)或者3個(gè)這些方法一起使用。主流的用法是執(zhí)行一些web請(qǐng)求授權(quán),以及在服務(wù)層使用AOP聯(lián)盟(AOP Alliance)對(duì)一些方法調(diào)用授權(quán)。

       

      Acegi Security使用“安全對(duì)象”(secure object)這個(gè)詞來(lái)指任何能夠?qū)踩珣?yīng)用于其上的對(duì)象。每個(gè)Acegi Security支持的安全對(duì)象都有自己的類,它是AbstractSecurityInterceptor的子類。重要的一點(diǎn)是,如果一個(gè)principal通過(guò)認(rèn)證,當(dāng)AbstractSecurityInterceptor執(zhí)行的時(shí)候,SecurityContextHolder中要包含一個(gè)有效的Authentication

       

      AbstractSecurityInterceptor提供一個(gè)固定的工作流程來(lái)處理安全對(duì)象請(qǐng)求。這個(gè)工作流程包括查找和當(dāng)前請(qǐng)求相關(guān)聯(lián)的“配置屬性(configuration attributes)”。配置屬性(configuration attributes)可以被認(rèn)為是對(duì)被AbstractSecurityInterceptor使用的類有特殊含義的字符串。他們通常針對(duì)AbstractSecurityInterceptor使用XML進(jìn)行配置。反正,AbstractSecurityInterceptor會(huì)詢問(wèn)AccessDecisionManager “這是配置屬性(configuration attributes),這是當(dāng)前的認(rèn)證對(duì)象(Authentication object),這是當(dāng)前請(qǐng)求的詳細(xì)信息-那么這個(gè)特定的principal可以執(zhí)行這個(gè)特定的操作嗎?”。

       

      假如AccessDecisionManager判定允許這個(gè)請(qǐng)求,那么AbstractSecurityInterceptor一般來(lái)說(shuō)就繼續(xù)執(zhí)行請(qǐng)求。雖然這樣,用戶在少數(shù)情況之下可能需要替換SecurityContext中的Authentication可以通過(guò)AccessDecisionManager調(diào)用一個(gè)RunAsManager來(lái)實(shí)現(xiàn)。在某些不常見(jiàn)的情形下這將非常有用,例如服務(wù)層的方法需要用另一種標(biāo)識(shí)(身份)來(lái)調(diào)用遠(yuǎn)程系統(tǒng)。這可能有所幫助,因?yàn)?/span>Acegi Security自動(dòng)在不同的服務(wù)器之間傳播安全標(biāo)識(shí)(假設(shè)你正確配置了RMI或者HttpInvoker remoting protocol client)。

       

      隨著安全對(duì)象處理和返回-意味著方法調(diào)用完畢或者過(guò)濾器鏈(filter chain)處理完畢-AbstractSecurityInterceptor有最后的機(jī)會(huì)來(lái)處理調(diào)用。這時(shí),AbstractSecurityInterceptor可能會(huì)修改返回的對(duì)象。我們可能要這樣做,因?yàn)槭跈?quán)判斷不能在安全對(duì)象調(diào)用途中執(zhí)行。由于高度的可插拔性,如果需要AfterInvocationManager將控制權(quán)交給AfterInvocationManager來(lái)實(shí)際修改對(duì)象。這個(gè)類甚至可以徹底替換對(duì)象,或者拋出異常,或者根本不修改它。

       

      因?yàn)槭?/span>AbstractSecurityInterceptor中心模版類,看起來(lái)第一副插圖該獻(xiàn)給它。(譯注:原手冊(cè)里的圖畫的太丑陋了,我用jude重新畫了一遍

      <!--[if !vml]--><!--[endif]-->

      ch2-1

      1 關(guān)鍵“安全對(duì)象”模型

       

      只有那些希望實(shí)現(xiàn)全新的對(duì)請(qǐng)求進(jìn)行截取截取和授權(quán)方式的開(kāi)發(fā)者才需要直接使用安全對(duì)象。例如,可能構(gòu)建一個(gè)新的安全對(duì)象安全調(diào)用一個(gè)消息系統(tǒng)。任何需要安全并且能夠提供一種截取調(diào)用的方式(例如AOP around advice semantics)的東西都可以成為安全對(duì)象。雖然如此,大部分的Spring應(yīng)用都會(huì)只是透明應(yīng)用當(dāng)前支持的三種安全對(duì)象類型(AOP Alliance MethodInvocation, AspectJ JoinPoint web request FilterInterceptor)。

       

      2.5. 結(jié)論

      恭喜!你已經(jīng)獲取了Acegi Security足夠的概括性的圖景來(lái)開(kāi)始著手你的項(xiàng)目。我們探究了共享組件,認(rèn)證過(guò)程,以及對(duì)“安全對(duì)象”的通用授權(quán)概念。手冊(cè)中的余下部分你可能用到也可能用不到,可以按照任意順序閱讀。

       


      安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
      国产午夜福三级在线播放_亚洲精品成a人片在线观看_亚洲自慰一区二区三区_久久棈精品久久久久久噜噜
      <source id="4vppl"><ins id="4vppl"></ins></source>
      <u id="4vppl"><sub id="4vppl"><label id="4vppl"></label></sub></u>
      <object id="4vppl"></object>
    1. <u id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></u>

      <object id="4vppl"></object>
      <b id="4vppl"><sub id="4vppl"><tr id="4vppl"></tr></sub></b>

        <i id="4vppl"><thead id="4vppl"></thead></i>

        <thead id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></thead>
        亚洲色偷偷偷网站色偷一区 | 亚洲欧美高清在线精品二区 | 亚洲中文字幕精品久久久久久直播 | 日本午夜免a费看大片中文4 | 亚洲另类激情专区小说图片 | 亚洲中文欧美日韩在线卡 |