<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
    主站蜘蛛池模板: xvideos亚洲永久网址| 精品熟女少妇AV免费观看| 亚洲а∨天堂久久精品| 日日狠狠久久偷偷色综合免费| 亚洲va精品中文字幕| 无码国产精品一区二区免费16| 免费三级毛片电影片| 亚洲伊人色一综合网| 可以免费看黄视频的网站| 亚洲av永久综合在线观看尤物| 永久在线免费观看| 99热亚洲色精品国产88| www.黄色免费网站| 亚洲AV成人精品日韩一区| 免费人成年激情视频在线观看| 亚洲无线电影官网| 蜜桃AV无码免费看永久| 亚洲人xxx日本人18| 午夜男人一级毛片免费| 精品成人一区二区三区免费视频| 四虎影视永久免费观看网址| 日本中文字幕免费看| 四虎影视大全免费入口| 国产亚洲福利精品一区二区| 亚洲午夜av影院| 亚洲毛片免费观看| 亚洲国产成人AV网站| 亚洲性在线看高清h片| 久久免费国产视频| 亚洲一级特黄特黄的大片 | 中文字幕免费在线看线人 | 免费A级毛片在线播放不收费| 特级做a爰片毛片免费看| 亚洲国产精品一区二区第一页| 3d动漫精品啪啪一区二区免费| 亚洲一线产区二线产区区| 国产成人精品曰本亚洲79ren| 91福利免费体验区观看区| 亚洲爆乳大丰满无码专区 | 亚洲成a人片在线观看中文app| 日韩电影免费在线|