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

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

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

    無為

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

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks

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

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

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

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

    CasProcessingFilter CAS認證機制

    BasicProcessingFilter Http協議的Basic認證機制

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

    JbossIntegrationFilter 與Jboss相關。

    SecurityContextHolderAwareRequestFilter 與servlet容器結合使用。

    RememberMeProcessingFilter 基于Cookies方式進行認證。

    AnonymousProcessingFilter 匿名認證。

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

    AuthenticationEntryPoint 認證入口

    三、Acegi認證授權流程
    1、FilterToBeanProxy 負責代理請求給FilterChainProxy

    2、FilterChainProxy 方便的將多個Filter串聯起來,如上面基本概念中提到的各種Filter,當然如果對URI進行授權保護,也可以包含FilterSecurityInterceptor。注意各Filter的順序。

    3、AbstractSecurityInterceptor 調度中心。負責調用各模塊完成相應功能。
    FilterSecurityInterceptor 對URI進行攔截保護
    AspectJSecurityInterceptor 對方法進行攔截保護
    MethodSecurityInterceptor 對方法進行攔截保護

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

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

    6、RunAsManager 變更GrantedAuthority

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

     



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

    posted on 2007-12-16 21:31 草兒 閱讀(1220) 評論(0)  編輯  收藏 所屬分類: JAVA WEB應用
    主站蜘蛛池模板: 亚洲国产综合在线| 亚洲欧洲春色校园另类小说| 亚洲日韩国产一区二区三区在线 | 亚洲日本VA午夜在线影院| 99精品视频免费观看| 亚洲电影一区二区| 99在线免费观看视频| 亚洲精品不卡视频| av无码国产在线看免费网站| 亚洲日韩国产精品无码av| 久久福利资源网站免费看| 久久精品国产亚洲AV忘忧草18 | 亚洲欧美日韩中文字幕一区二区三区 | 大胆亚洲人体视频| 在线91精品亚洲网站精品成人| 1024免费福利永久观看网站| 亚洲人成电影青青在线播放| 妞干网免费视频在线观看| 国产精品亚洲а∨无码播放麻豆| 亚洲日韩中文在线精品第一| 少妇性饥渴无码A区免费 | 一区二区视频在线免费观看| 亚洲日本va在线视频观看| 久久国产乱子免费精品| 亚洲成aⅴ人片在线观| 成年女人喷潮毛片免费播放| 羞羞的视频在线免费观看| 亚洲精品狼友在线播放| 16女性下面无遮挡免费| 亚洲欧美日韩综合俺去了| 久久久久亚洲av成人无码电影| 久久免费观看国产精品| 亚洲国产精品一区二区三区在线观看| 拔擦拔擦8x华人免费久久| 精选影视免费在线 | 亚洲综合色丁香麻豆| 免费精品国产自产拍观看| 免费人成毛片动漫在线播放| 亚洲中文字幕无码爆乳| 久久青青草原亚洲av无码| 一个人免费高清在线观看|