• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Web Service實現的關注點分離

    發布: 2008-2-22 12:32 | 作者: Tieu Luu | 來源: dev2dev | 查看: 341次 | 進入軟件測試論壇討論

    領測軟件測試網

    <beans>
      . . .
      <bean id="securityInterceptor"
        class="org.acegisecurity.intercept.method.
          aopalliance.MethodSecurityInterceptor">
        <property name="authenticationManager">
          <bean class="org.acegisecurity.
            providers.ProviderManager">
            <property name="providers">
              <list>
                <bean
                  class="org.acegisecurity.
                    providers.anonymous.
                    AnonymousAuthenticationProvider">
                  <property
                    name="key"
                    value="changeThis"/>
                </bean>
              </list>
            </property>
          </bean>
        </property>

        <property name="accessDecisionManager">
          <bean
            class="org.acegisecurity.vote.
              UnanimousBased">
            <property name="decisionVoters">
              <list>
                <bean
                  class="org.acegisecurity.
                    vote.RoleVoter"/>
              </list>
            </property>
          </bean>
        </property>

        <property
          name="objectDefinitionSource">
          <value>
            com.mybank.bizlogic.AccountMgr.
              transferFunds=ROLE_MANAGER
          </value>
        </property>
      </bean>
      . . .
    </beans>

      我們需要配置帶有authenticationManager屬性的securityInterceptor bean,以指定使用哪種類型的認證。由于我們的設計依靠Axis 處理程序來執行認證,而這里不需要認證,因此僅使用AnonymousAuthenticationProvider進行配置。另外,我們在Axis處理程序中創建認證令牌的方式會使Acegi獲知它已經進行了認證,因此不會嘗試再次認證。稍后討論Axis處理程序時,我們將對此進行更加詳細的解釋。

      接下來,我們需要配置帶有accessDecisionManager屬性的bean,以指定如何決定是否授權某用戶進行訪問以調用方法。Acegi具有訪問決策管理器(access decision manager)的三個具體實現:AffirmativeBased、ConsensusBased和UnanimousBased。Acegi根據投票人對是否授權某用戶進行訪問以執行特定操作的投票,來實施訪問策略。計算投票數來決定是否應該授權訪問。我們選擇了UnanimousBased訪問決策管理器,為了客戶端能夠執行操作,需要所有的投票都授權訪問。用戶應該閱讀Acegi文檔,以獲取對該訪問決策的更深入說明。下面,我們必須配置帶有投票人列表的accessDecisionManager。這里我們僅使用一個名為RoleVoter投票人。這是來自Acegi的類,根據基于角色訪問控制對是否授權訪問進行投票。用戶還應參考Acegi文檔,以獲取對RoleVoter工作方式的更深入說明。

      需要配置的最后一個屬性是objectDefinitionSource。這就是如何指定訪問受保護的對象上不同方法所需要的認證。在這里,我們只想保護transferFunds()方法,并且只允許訪問manager。通過列出所有符合條件的類名、方法名和進行訪問所需的角色來實現:

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    43/4<1234>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>