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

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

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

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
    安全框架的主體包括兩部分即驗權和授權。Spring Security2可以很好的實現這兩個過程。Spring Security2對其前身acegi最大的改進是提供了自定義的配置標簽,通過Security的命名空間定義了http和 authentication-provider等標簽,這樣做的好處是極大地簡化了框架的配置,并很好地隱藏了框架實現的細節,在配置的表述上也更清 晰,總體上提高了框架的易用性。

    然而,該框架默認的權限配置方式在xml中,又因為新版本隱藏了實現細節,在動態權限的擴展上,能力變小了。在驗權過程中,遇到的問題不多。但在 授權時,如果是acegi,人們可以通過繼承AbstractFilterInvocationDefinitionSource類實現在授權(即資源角 色和用戶角色的匹配)前,針對資源的角色的獲取。而新版本因為用新標簽進行了整合,這個過程被默認的類實現隱藏掉了,包括過濾器,資源獲取和角色定義等過 程都由框架來實現,于是很多人在使用Spring Security2時也想通過改動DefaultFilterInvocationDefinitionSource對資源的獲取來實現數據庫或文件中的 動態的角色。不過這樣的改動侵入性比較高,而且還保留了acegi的痕跡,也違背了開閉的原則。

    其實,我們完全可以通過Spring Security2 accessManager提供的自定義投票機制來解決這個問題,這樣既不影響現有的基于URL的配置,還可以加入自己的動態的權限配置。

             其實現策略如下:

    1 定義類DynamicRoleVoter實現AccessDecisionVoter,注入實現接口DynamicRoleProvider(用來定義獲取角色的方法)的提供動態角色的類

    2 在兩個supports方法中返回true

    3 在vote方法中,有三個參數(Authentication authentication, Object object,ConfigAttributeDefinition config) 通過第一個獲取用戶的權限集合,第二個可以獲取到資源對象,進而通過DynamicRoleProvider獲取到角色集合進行匹配。

    4 在配置文件中加入DynamicRoleVoter,如下:

    <beans:bean id="accessDecisionManager" class="org.springframework.security.vote.AffirmativeBased">  
    <beans:property name="decisionVoters">  
    <beans:list>  
    <beans:bean class="org.springframework.security.vote.RoleVoter" />  
    <beans:bean class="org.springframework.security.vote.AuthenticatedVoter" />  
     
    <beans:bean class="DynamicRoleVoter">  
        
    <beans:property name="dynamicRoleProvider">  
             
    <beans:ref local="dynamicRoleProvider"/>  
     
    </beans:property>  
     
    </beans:bean>  
     
    </beans:list>  
     
    </beans:property>  
     
    </beans:bean>  
     
    <beans:bean id=” dynamicRoleProvider” class=”…”>  
         
    ……  
     </beans:bean
    >  



    http://hszdz.javaeye.com/blog/337652
    posted on 2010-01-11 22:03 seal 閱讀(428) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 国产日韩精品无码区免费专区国产 | 亚洲理论在线观看| 中国精品一级毛片免费播放| 亚洲AV成人精品日韩一区18p| 国产午夜亚洲精品不卡电影| 免费国产成人高清在线观看麻豆| 处破女第一次亚洲18分钟| 国产免费啪嗒啪嗒视频看看| 免费一级特黄特色大片| 色天使色婷婷在线影院亚洲| 国产乱子影视频上线免费观看| 99亚洲男女激情在线观看| 亚洲av无码乱码在线观看野外| 美女18一级毛片免费看| 亚洲日韩国产成网在线观看| 日批视频网址免费观看| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲国产成人久久精品大牛影视 | eeuss草民免费| 亚洲成人午夜在线| 69成人免费视频| 亚洲欧美日韩中文字幕在线一区 | 3d动漫精品啪啪一区二区免费| 国产.亚洲.欧洲在线| 国产成人免费手机在线观看视频| 成人免费夜片在线观看| 亚洲一级二级三级不卡| 免费一级毛片在线播放放视频| 亚洲人成电影网站国产精品| 国产免费阿v精品视频网址| 亚洲国产精品狼友中文久久久| 国产日韩久久免费影院 | 亚洲国产精品VA在线观看麻豆| 6080午夜一级毛片免费看| 亚洲精品久久无码| 国产国拍亚洲精品mv在线观看| 在线观看免费人成视频色| 一区二区三区免费电影| 亚洲欧洲日本精品| 亚洲精品无码99在线观看| 99在线观看精品免费99|