contextConfigLocation
/WEB-INF/spring-config.xml
org.springframework.web.context.
ContextLoaderListener
. . .
Acegi安全配置
現在我們來討論如何在Spring配置文件中配置Acegi安全。如前所述,我們配置了業務邏輯bean,因此由securityInterceptor bean來偵聽方法調用,以執行安全檢查。下面我們來看看如何配置該bean。下面所示是securityInterceptor bean的部分Spring配置文件代碼。securityInterceptor bean是由名為MethodSecurityInterceptor的Acegi類提供的。正如其名稱所示,該類用于加強方法調用的安全,通過偵聽調用并檢查調用方是否經過認證和授權。
. . .
class="org.acegisecurity.intercept.method.
aopalliance.MethodSecurityInterceptor">
com.mybank.bizlogic.AccountMgr.transferFunds=ROLE_MANAGER
. . .
我們需要配置帶有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工作方式的更深入說明。
文章來源于領測軟件測試網 http://www.kjueaiud.com/