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