spring security2配置文件學習小結

[b]1.applicationContext-security的配置[/b]
使用命名空間,主要分爲3個部分:
a. <http>註冊過濾器鏈,配置表單登陸,註銷等
b. 註冊自定義的安全認證管理器
c. 註冊自定義的授權過濾器

[b]2.<http>[/b]
a. <http>元素會創建一個FilterChainProxy和filter使用的bean。以前常常出現的因爲filter順序不正確產生的問題不會再出現了,現在這些過濾器的位置都是預定義好的。
b. auto-config = true(默認爲false)
==
<http>
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login />
<anonymous />
<http-basic />
<logout />
<remember-me />
</http>
c. access-decision-manager-ref屬性可以自定義的訪問策略管理器。當系統角色名的前綴不是默認的ROLE_時,需要自定義訪問策略管理器。

[b]3.安全認證[/b]
a. <authentication-manager alias="XX"/>爲AuthenticationManager註冊一個別名,然後你可以application context的其他地方使用這個名字
b. <authentication-provider>元素會創建一個DaoAuthenticationProvider bean;一個ProviderManager bean通常是由命名空間過程系統創建的, DaoAuthenticationProvider自動註冊到它上面
c. <user-service>元素會創建一個InMemoryDaoImpl。
d. 使用<custom-authentication-provider>元素可以爲ProviderManager註冊另外的AuthenticationProvider bean

[b]4.http/intercept-url[/b]
a. <intercept-url pattern="/XX" access="ROLE_XXX" />定義了對某個資源的訪問需要某個角色的權限
b. 對於在http/intercept-url中沒有進行定義的URL,將會默認使用系統內置的過濾器鏈進行權限認證(就是說無須認證和授權就能訪問了);
c. 若使用了pattern="/*" 則一般情況下要配置匿名認證過濾器--登陸頁面也被保護的話則會陷入死循環中.
d. 由於一般情況下資源對應的權限都配置在數據庫的資源權限表中,所以這個元素一般情況下沒用
e. 如果數據庫中的資源權限表中不存在該資源記錄,那麼匿名認證過濾器實際上時不需要的.

[b]5.<security:custom-filter>[/b]
a. <security:custom-filter position="XXX"/>會使用自定義的過濾器替換(position)某個過濾器,但是有3個不能替換:HttpSessionContextIntegrationFilter, ExceptionTranslationFilter, FilterSecurityInterceptor.但是可以使用before或after
b. 除了使用position外,還可以使用before,after加入自定義的過濾器,還有的關鍵字包括first,last代表這個過濾器鏈的頭和尾

[b]6.數據庫的資源權限表中應該只保存.action的記錄,把所有受保護的jsp頁面放到/WEB-INF文件夾下,外部的用戶就無法訪問了,/WEB-INF下的JSP只能通過Servlet的轉發訪問。[/b]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章