SpringSecurity 是什麼?
SpringSecurity的子產品
開始SpringSecurity
SpringSecurity maven的最小依賴
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
過濾Web請求
SpringSecurity借助一系列ServletFilter來提供各種安全性功能。
DelegatingFilterProxy是一個特殊的ServletFilter,它本身所做的工作并不多,隻是将工作委托給一個javax.servlet.Filter類,這個實作類作為一個Bean注冊到Spring應用的上下文中。

web.xml中配置DelegatingFilterProxy:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
Java 的方式配置DelegatingFilterProxy:
public class SecurityWebInitializer extends AbstractSecurityWebApplicationInitializer{
}
AbstractSecurityWebApplicationInitializer實作了WebApplicationInitializer,是以Spring會發現它,并用它在Web容器中注冊DelegatingFilterProxy。
不管通過web.xml還是通過AbstractSecurityWebApplicationInitializer的子類來配置DelegatingFilterProxy,它都會攔截發往應用中的請求,并将請求委托給ID為springSecurityFilterChain 的Bean.
編寫簡單的安全性配置
啟用web安全性功能的最簡單配置:
@Configuration
@EnableWebSecurity // 啟用web安全
public class SecurityConfig extends WebSecurityConfigurerAdapter{
}
@EnableWebSecurity注解将會啟用Web安全功能,Spring Security必須配置在一個實作了WebSecurityConfigurer的Bean中,或者簡單起見擴充WebSecurityConfigurerAdapter。
指定Web安全的細節,通過重載WebSecurityConfigurerAdapter中的configure()方法,這個過程中會使用傳遞進來的參數設定行為。