国产精品一区二区精品_久久小视频_天堂va在线观看_99久久夜色精品国产亚洲96_日本手机在线视频_av成人免费

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > acegi參考手冊(v1.0.4)[譯]-第二章 技術概覽[下]

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

2.4. 安全對象

如果你熟悉AOP,你會知道有很多種advice可用:before, after, throws aroundaround advice非常有用,因為它能夠選擇是否選擇是否執行一個方法調用,是否修改返回值,以及是否拋出異常。Acegi Security對方法調用和web請求都提供around advice。我們使用AOP聯盟實現對方法調用的around advice,對于web請求的around advice則是使用標準的過濾器(Filter)。

 

對于那些不熟悉AOP的人來說,關鍵是要理解Acegi Security能夠幫助你保護方法調用以及web請求。大多數人對保護他們服務層的方法調用感興趣。這是因為在當前的J2EE應用中,服務層包含了大多數的業務邏輯(聲明,作者不贊成這種設計,反而支持正確封裝的領域模型以及DTOassembly, facade 以及 transparent persistence patterns,而不是當前主流的貧血模型,我們將在這里討論)。如果你需要保護service層的方法調用,使用標準的Spring AOP平臺(或者被成為AOP 聯盟(AOP Alliance))就足夠了。如果你需要直接對領域模型進行保護,那么可以考慮使用AspectJ

 

你可以選擇對使用AspectJ 或者AOP聯盟(AOP Alliance)對方法進行授權,或者你可以選擇使用過濾器(filter)來對web請求進行授權。你將0個,1個,2個或者3個這些方法一起使用。主流的用法是執行一些web請求授權,以及在服務層使用AOP聯盟(AOP Alliance)對一些方法調用授權。

 

Acegi Security使用“安全對象”(secure object)這個詞來指任何能夠將安全應用于其上的對象。每個Acegi Security支持的安全對象都有自己的類,它是AbstractSecurityInterceptor的子類。重要的一點是,如果一個principal通過認證,當AbstractSecurityInterceptor執行的時候,SecurityContextHolder中要包含一個有效的Authentication

 

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

 

假如AccessDecisionManager判定允許這個請求,那么AbstractSecurityInterceptor一般來說就繼續執行請求。雖然這樣,用戶在少數情況之下可能需要替換SecurityContext中的Authentication可以通過AccessDecisionManager調用一個RunAsManager來實現。在某些不常見的情形下這將非常有用,例如服務層的方法需要用另一種標識(身份)來調用遠程系統。這可能有所幫助,因為Acegi Security自動在不同的服務器之間傳播安全標識(假設你正確配置了RMI或者HttpInvoker remoting protocol client)。

 

隨著安全對象處理和返回-意味著方法調用完畢或者過濾器鏈(filter chain)處理完畢-AbstractSecurityInterceptor有最后的機會來處理調用。這時,AbstractSecurityInterceptor可能會修改返回的對象。我們可能要這樣做,因為授權判斷不能在安全對象調用途中執行。由于高度的可插拔性,如果需要AfterInvocationManager將控制權交給AfterInvocationManager來實際修改對象。這個類甚至可以徹底替換對象,或者拋出異常,或者根本不修改它。

 

因為是AbstractSecurityInterceptor中心模版類,看起來第一副插圖該獻給它。(譯注:原手冊里的圖畫的太丑陋了,我用jude重新畫了一遍

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

ch2-1

1 關鍵“安全對象”模型

 

只有那些希望實現全新的對請求進行截取截取和授權方式的開發者才需要直接使用安全對象。例如,可能構建一個新的安全對象安全調用一個消息系統。任何需要安全并且能夠提供一種截取調用的方式(例如AOP around advice semantics)的東西都可以成為安全對象。雖然如此,大部分的Spring應用都會只是透明應用當前支持的三種安全對象類型(AOP Alliance MethodInvocation, AspectJ JoinPoint web request FilterInterceptor)。

 

2.5. 結論

恭喜!你已經獲取了Acegi Security足夠的概括性的圖景來開始著手你的項目。我們探究了共享組件,認證過程,以及對“安全對象”的通用授權概念。手冊中的余下部分你可能用到也可能用不到,可以按照任意順序閱讀。

 


安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 国产伦精品一区二区三区高清 | 日韩人妻熟女毛片在线看 | 欧美区一| 国产在线看一区 | 欧洲美女7788成人免费视频 | 男人天堂网av | 日韩欧美黄色片 | 一区二区三区欧美视频 | 麻豆国产视频 | 国产高清成人久久 | 91视频免费网站 | 欧洲精品在线观看 | 91精品国产乱码久久久久久 | 91精品国产入 | 九九久久久久 | 国产哺乳奶水91在线播放 | 久久久大 | 不卡在线播放 | 国内色视频 | 狠狠艹| 成年片黄色日本大片网站视频 | 黄网入口 | 人人干日日干 | 一级做a爱高潮免费视频 | 黄色一级播放 | 国产一区二区在线免费观看 | 欧美在线一区二区 | 成人影视网址 | 亚洲成人中文字幕 | 在线免费下载黄色软件 | 欧美综合激情 | 成人亚洲电影 | 亚洲自拍天堂 | 免费国产小视频 | 久久天天躁狠狠躁亚洲综合公司 | 成人在线精品 | www.888av| 午夜在线视频免费观看 | 欧美日韩国产一区二区在线观看 | 日韩av免费播放 | 在线国产区 |