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

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

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

    無為

    無為則可為,無為則至深!

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks

    一、基本原理
    Acegi認證授權(quán)主要基于兩大技術(shù),一是Filter機制,二是AOP的攔截機制。通過FilterSecurityInterceptor很好地實現(xiàn)了對URI的保護,通過MethodSecurityInterceptor實現(xiàn)了對Service的方法的攔截保護,通過ACL 實現(xiàn)了對prototype類型的Object進行過濾和保護。

    二、基本概念
    HttpSessionContextIntegrationFilter 存儲SecurityContext in HttpSession
    ChannelProcessingFilter 重定向到另一種協(xié)議,如http到https

    ConcurrentSessionFilter 因為不使用任何SecurityContextHolder的功能,但是需要更新SessionRegistry來表示當(dāng)前的發(fā)送請求的principal,通過在web.xml中注冊Listener監(jiān)聽Session事件,并發(fā)布相關(guān)消息,然后由SessionRegistry獲得消息以判斷當(dāng)前用戶的Session數(shù)量。

    AuthenticationProcessingFilter 普通認證機制(大多數(shù)用這個)

    CasProcessingFilter CAS認證機制

    BasicProcessingFilter Http協(xié)議的Basic認證機制

    HttpRequestIntegrationFilter Authentication 從容器的HttpServletRequest.getUserPrincipal()獲得

    JbossIntegrationFilter 與Jboss相關(guān)。

    SecurityContextHolderAwareRequestFilter 與servlet容器結(jié)合使用。

    RememberMeProcessingFilter 基于Cookies方式進行認證。

    AnonymousProcessingFilter 匿名認證。

    ExceptionTranslationFilter 捕獲所有的Acegi Security 異常,這樣要么返回一個HTTP錯誤響應(yīng)或者加載一個對應(yīng)的AuthenticationEntryPoint

    AuthenticationEntryPoint 認證入口

    三、Acegi認證授權(quán)流程
    1、FilterToBeanProxy 負責(zé)代理請求給FilterChainProxy

    2、FilterChainProxy 方便的將多個Filter串聯(lián)起來,如上面基本概念中提到的各種Filter,當(dāng)然如果對URI進行授權(quán)保護,也可以包含F(xiàn)ilterSecurityInterceptor。注意各Filter的順序。

    3、AbstractSecurityInterceptor 調(diào)度中心。負責(zé)調(diào)用各模塊完成相應(yīng)功能。
    FilterSecurityInterceptor 對URI進行攔截保護
    AspectJSecurityInterceptor 對方法進行攔截保護
    MethodSecurityInterceptor 對方法進行攔截保護

    4、AuthenticationManager 用戶認證
    -> AuthenticationProvider 實際進行用戶認證的地方(多個)。
    -> UserDetailsService 返回帶有GrantedAuthority的UserDetail或者拋出異常。

    5、AccessDecisionManager(UnanimousBased/AffirmativeBased/ConsensusBased) 授權(quán)
    -> AccessDecisionVoter(RoleVoter/BaseAclEntryVoter) 實際投票的Voter(多個).

    6、RunAsManager 變更GrantedAuthority

    7、AfterInvocationManager 變更返回的對象
    -> BaseInvocationProvider 實際完成返回對象變更的地方(多個)。

     



    凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
    、轉(zhuǎn)載請注明來處和原文作者。非常感謝。

    posted on 2007-12-16 21:31 草兒 閱讀(1220) 評論(0)  編輯  收藏 所屬分類: JAVA WEB應(yīng)用
    主站蜘蛛池模板: 亚洲精品无码永久在线观看你懂的| 午夜一级免费视频| 亚洲精品一品区二品区三品区| 狠狠热精品免费观看| 亚洲国产一成久久精品国产成人综合 | 亚洲av日韩av天堂影片精品| 伊人久久大香线蕉免费视频| 久久亚洲精品无码| 最近免费中文在线视频| 亚洲乱码无限2021芒果| 日韩午夜免费视频| 国产亚洲视频在线| 亚洲精品无码成人AAA片| 亚在线观看免费视频入口| 亚洲第一页在线播放| 最近中文字幕免费mv视频7| 国产精品亚洲а∨无码播放不卡 | 四虎国产精品永久免费网址| 亚洲人成网站在线观看播放动漫| 在线观看日本免费a∨视频| 亚洲AV成人无码网天堂| 久久久久亚洲精品中文字幕 | 国产AV无码专区亚洲AV蜜芽| 亚洲男人的天堂在线va拉文| 日本在线免费播放| 亚洲人成色77777在线观看| 亚洲精品456播放| 99re在线免费视频| 亚洲AV成人无码久久WWW| 国产l精品国产亚洲区在线观看| 1a级毛片免费观看| 青青草97国产精品免费观看| 亚洲国产精品一区二区成人片国内| 中文字幕无码播放免费| 深夜免费在线视频| 亚洲国产情侣一区二区三区| 亚洲国产成人久久一区WWW| 91av免费观看| sss在线观看免费高清| 亚洲www在线观看| 亚洲欧洲无码AV电影在线观看|