SpringSecurity學習筆記之二:SpringSecurity結構及基本配置
Spring Security3.2分為11個模組,如下表所示:
Spring Security3.2引入了新的Java配置方案,完全不在需要通過XML來配置安全性功能。如下,展現了Spring Security最簡單的Java配置:
@EnableWebSecurity註解將會啟動Web安全功能,但它本身並沒有什麼功能。Spring Security必須配置在一個實現了WebSecurityConfigurer的bean中,或者擴充套件WebSecurityConfigurerAdapter,擴充套件該類是最簡單的配置方法。 這樣做有以下幾點好處:
-
a、該註解配置了一個Spring MVC引數解析器(argument resolver),這樣處理器方法能夠通過帶有@AuthenticationPrincipal註解的引數獲得認證使用者的principal(或username)。
-
b、它配置了一個bean,在使用Spring表單繫結標籤庫來定義表單時,武漢英語學校這個bean會自動新增一個隱藏的跨站請求偽造token輸入域。
我們可以通過過載WebSecurityConfigurerAdapter中的一個或多個方法來指定Web安全的細節。例如WebSecurityConfigurerAdapter的三個configure()方法:configure(WebSecurity)、configure(HttpSecurity)、configure(AuthenticationManagerBuilder),詳情如下表:
上面的程式清單中沒有重寫任何一個configure()方法,所以應用現在是被嚴格鎖定的,沒有任何人能夠進入系統。為了讓Spring Security滿足我們應用的需求,還需要再新增一點配置。具體來講,我們需要:
-
a、配置使用者儲存
-
b、指定哪些請求需要認證,哪些請求不需要認證,以及需要的許可權。
-
c、提供一個自定義的登入頁面,替代原來簡單的預設登入頁。