javascript
SpringSecurity常用过滤器介绍
SpringSecurity常用過濾器介紹
過濾器是一種典型的AOP思想
SecurityContextPersistenceFilter
首當其沖的一個過濾器,作用之重要,自不必多言。
SecurityContextPersistenceFilter主要是使用SecurityContextRepository在session中保存或更新一SecurityContext,并將SecurityContext給以后的過濾器使用,來為后續filter建立所需的上下文。SecurityContext中存儲了當前用戶的認證以及權限信息。
WebAsyncManagerIntegrationFilter
此過濾器用于集成SecurityContext到Spring異步執行機制中的WebAsyncManager
HeaderWriterFilter
向請求的Header中添加相應的信息,可在http標簽內部使用security:headers來控制(僅限于JSP頁面)
CsrfFilter
csrf又稱跨域請求偽造,SpringSecurity會對所有post請求驗證是否包含系統生成的csrf的token信息, 如果不包含,則報錯。起到防止csrf攻擊的效果。
LogoutFilter
匹配URL為/logout的請求,實現用戶退出,清除認證信息。
UsernamePasswordAuthenticationFilter
認證操作全靠這個過濾器,默認匹配URL為/login且必須為POST請求。
DefaultLoginPageGeneratingFilter
如果沒有在配置文件中指定認證頁面,則由該過濾器生成一個默認認證頁面。
DefaultLogoutPageGeneratingFilter
由此過濾器可以生產一個默認的退出登錄頁面
BasicAuthenticationFilter
此過濾器會自動解析HTTP請求中頭部名字為Authentication,且以Basic開頭的頭信息。
RequestCacheAwareFilter
通過HttpSessionRequestCache內部維護了一個RequestCache,用于緩存HttpServletRequest
SecurityContextHolderAwareRequestFilter
針對ServletRequest進行了一次包裝,使得request具有更加豐富的API
AnonymousAuthenticationFilter
當SecurityContextHolder中認證信息為空,則會創建一個匿名用戶存入到SecurityContextHolder中。 spring security為了兼容未登錄的訪問,也走了一套認證流程,只不過是一個匿名的身份。
當用戶以游客身份登錄的時候,也就是可以通過設置某些接口可以匿名訪問
SessionManagementFilter
SecurityContextRepository限制同一用戶開啟多個會話的數量
ExceptionTranslationFilter
異常轉換過濾器位于整個springSecurityFilterChain的后方,用來轉換整個鏈路中出現的異常
FilterSecurityInterceptor
獲取所配置資源訪問的授權信息,根據SecurityContextHolder中存儲的用戶信息來決定其是否有權 限
該過濾器限制哪些資源可以訪問,哪些不能夠訪問
總結
以上是生活随笔為你收集整理的SpringSecurity常用过滤器介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringSecurity简单入门
- 下一篇: SpringSecurity分布式整合之