介紹Spring Security默認的過濾器鏈,介紹順序按照過濾器在過濾器鏈中的順序排序
1、WebAsyncManagerIntegrationFilter
將Security上下文與Spring Web中用於處理異步請求映射的 WebAsyncManager 進行集成。
2、SecurityContextPersistenceFilter
在每次請求處理之前將該請求相關的安全上下文信息加載到SecurityContextHolder中,然后在該次請求處理完成之后,將SecurityContextHolder中關於這次請求的信息存儲到一個“倉儲”中,然后將SecurityContextHolder中的信息清除
例如在Session中維護一個用戶的安全信息就是這個過濾器處理的。
3、HeaderWriterFilter
用於將頭信息加入響應中
4、CsrfFilter
用於處理跨站請求偽造
5、LogoutFilter
用於處理退出登錄
6、UsernamePasswordAuthenticationFilter
用於處理基於表單的登錄請求,從表單中獲取用戶名和密碼。默認情況下處理來自“/login”的請求。
從表單中獲取用戶名和密碼時,默認使用的表單name值為“username”和“password”,這兩個值可以通過設置這個過濾器的usernameParameter 和 passwordParameter 兩個參數的值進行修改。
7、DefaultLoginPageGeneratingFilter
如果沒有配置登錄頁面,那系統初始化時就會配置這個過濾器,並且用於在需要進行登錄時生成一個登錄表單頁面。
8、BasicAuthenticationFilter
處理請求頭信息,DigestAuthenticationFilter
9、RequestCacheAwareFilter
用來處理請求的緩存
10、SecurityContextHolderAwareRequestFilter
11、AnonymousAuthenticationFilter
12、SessionManagementFilter
13、ExceptionTranslationFilter
處理 AccessDeniedException 和 AuthenticationException 異常
14、FilterSecurityInterceptor
AbstractInterceptUrlConfigurer.createFilterSecurityInterceptor