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

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

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

    空間站

    北極心空

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
    簡介
    Acegi是為基于Spring的應用提供的聲明式安全框架。它通過在Spring的應用上下文中配置一系列的Bean完成安全設置,完成利用了Spring提供的依賴注入和IoC編程方式。
    為了保證Web應用的安全需求,Acegi使用過濾器攔截servlet請求,并執行認證來執行安全措施。
    Acegi通過安全方法級調用來執行更低層次的安全需求。通過使用Spring的AOP,Acegi使用代理對象來確保用戶有適當的權限來調用被保護的方法。
    無論是較高層次的Web應用的安全,還是較低層次的方法級安全,Acegi都可以通過四個主要組件完成安全需求。
    圖一
    Security Interceptor 用于攔截那些需要訪問受保護資源的請求。
    Authentication Managers 用于驗證主體的身份,如你的principal(典型的如用戶名)和你的Credentials(典型的如密碼)。能過驗證,可以證明Who are you 。
    Access Decision Mangers 用于決定已驗證通過的principal是否有訪問受保護資源的特權。
    Run-as Managers 盡管你通過了驗證和并得到授權可以訪問資源,但可能還會有更多的安全約束:例如,你可能得到了查看某個Web頁面的權力,但是頁面中可以還有比Web頁面安全級別更高的對象。Run-as manager 正是用于這方面的驗證。盡管這方面的需求不多,但Acegi通過Run-as Managers可以做到這一點。
     
    管理驗證
           Acegi定義了AuthenticationManager接口,用于安全驗證,同時提供了代理類ProviderManager以及它的相關實現,它們可以完成大部分相應的功能,而不需要我們自己開發。
    圖二
     
    通過Acegi和CAS實現SSO
       耶魯大學的CAS是SSO的一個解決方案。CAS的細節內容已經超出了本文的討論范圍。為了理解Acegi如何與基于CAS驗證的應用相結合的問題,有必要看一下一個典型的CAS驗證例子是如何工作的。詳見前面研究過的CAS的文檔。
    你應該理解的一個關鍵概念就是這個受保護的應用根本不處理用戶的Credentials。當用戶打算登錄應時時,實際上他們登錄的是CAS Server.。應用根本不知道用戶的Credentials。唯一要做的就是驗證用戶的ticket是否有效,這個ticket是由CAS Server 發放的。這是一件好事,因為它意味著只有一個應用(即CAS)負責處理用戶的驗證。
    當CAS與Acegi配合使用時,Acegi要做的就是在應用上校驗CAS ticket的工作。這使得應用本身可以不管CAS的身份驗證過程。
       Acegi通過CasAuthenticationProvider類達到這個目的,它不關心用戶名和密碼,而是接受一個CAS Ticket作為它的Credentials。除了配置CasAuthenticationProvider類以外,還需要在Spring的配置文件中配置其它幾個輔助類,它們分別是.CasProxyDecider及其子類。
    訪問控制
    身份驗證只是Acegi的第一步。一旦Acegi知道用戶是誰,接下來它必須決定用戶是否有權訪問被保護的資源。這是通過 Access Decision Managers完成的。Acegi定義了net.sf.acegisecurity.AccessDecisionManager接口,它的supports()方法決定該應用是否有權做出訪問控制,decide()方法最終是否可以訪問,如果不可以訪問該資源,應拋出AccessDeniedException。
    AccessDecisionManager有三個實現類,分別是net.sf.acegisecurity.vote.AffirmativeBased,net.sf.acegisecurity.vote.ConsensusBased
    net.sf.acegisecurity.vote.UnanimousBased。AccessDecisionManager做出決定并不是通過它自己,而是把輪詢一個或更多年對象,這些對象對這個用戶是否有權訪問受保護的資源進行投票。一旦得到所有的投票,AccessDecisionManager會對這些投票進行計數,并做出最終決定。
     
    保護Web應用
    Acegi對Web應用的保護是強依賴于過濾器的。這些過濾器在請求被應用處理之前進行攔截,并進行安全控制。根據應用的實際需求,Acegi可以使用6個過濾器,它們分別是
    過濾器
    功能
    Channel-processing filter
    確保請求是通過SSL提交的(HTTPS)
    Authentication-processing filter
    接受驗證請求,并將其導向驗證管理器進行驗證
    CAS-processing filter
    接受CAS服務的ticket作為經過CAS驗證的證明
    HTTP Basic authorization filter
    Processes authentication performed using HTTP Basic authentication
    Integration filter
    Handles storage of authentication between requests (in HTTP Session,for example)
    Security enforcement filter
    Ensures that a user has been authenticated and meets the property
    authorization requirements to access a secured web resource
    接受一個請求以后,它以下面的順序進行。
    圖四 執行順序
     

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1356799

    posted on 2007-06-14 13:19 蘆葦 閱讀(461) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 亚洲成a∧人片在线观看无码| 99久久亚洲综合精品成人网| 亚洲sss综合天堂久久久| 日韩免费电影网站| 亚洲四虎永久在线播放| 免费A级毛片无码视频| 亚洲视频在线一区| 精品久久久久成人码免费动漫 | www视频在线观看免费| 亚洲Aⅴ无码专区在线观看q| 日韩免费观看一区| 亚洲二区在线视频| 毛片a级毛片免费观看品善网| 亚洲熟妇无码AV| 亚洲AV无码乱码在线观看性色扶 | 99re6在线精品免费观看| 亚洲综合AV在线在线播放| 免费在线看污视频| 亚洲丝袜美腿视频| 午夜免费福利影院| 人与动性xxxxx免费| 亚洲av午夜福利精品一区| 曰批全过程免费视频播放网站 | 日本免费一区尤物| 一级毛片在线免费播放| 久久综合日韩亚洲精品色| 四虎成年永久免费网站| 国产产在线精品亚洲AAVV| 亚洲一级特黄大片无码毛片| 免费精品无码AV片在线观看 | 另类图片亚洲校园小说区| 伊人久久精品亚洲午夜| 91精品免费久久久久久久久| 亚洲精品女同中文字幕| 国产成人高清亚洲| 成年人免费的视频| 国产亚洲情侣久久精品| 亚洲五月六月丁香激情| 永久免费av无码网站大全| 日本免费在线观看| 在线观看亚洲免费视频|