SpringSecurity6從入門到實戰之Filter過濾器回顧
如果沒有SpringSecurity這個框架,我們應該通過什么去實現客戶端向服務端發送請求時,先檢查用戶是否登錄,登錄了才能訪問.否則重定向到登錄頁面
流程圖如下
- 官方文檔:https://docs.spring.io/spring-security/reference/6.0/index.html
- 中文文檔:https://springdoc.cn/spring-security/index.html
過濾器回顧
Spring Security 對 Servlet 的支持是基于 Servlet Filter 的,所以先看一下過濾器的一般作用是很有幫助的。下圖顯示了單個HTTP請求的處理程序的典型分層。
以上是過濾鏈的使用,當所有的filter都走完后最終會發送請求到達Servlet
過濾器 Filter:
- 1.必須實現 Filter 接口
- 2.過濾器在訪問 Web 資源可以對請求進行攔截,并對請求進行預處理和后處理操作,然后將請求傳遞給目標資源。
- 3.如,強制登錄過濾器,訪問 web 資源時先對請求進行登錄檢查,已登錄可以往后訪問,未登錄重定向回登錄頁。
過濾器鏈 FilterChain:
- 1.在對一個 web 資源進行攔截處理時的多個 Filter 和 web 資源組成一個 FilterChain 過濾器鏈。
- 2.FilterChain 中的 doFilter() 方法非常重要,用于讓 Filter 鏈上的當前過濾器放行,使請求或響應進入下一 Filter 或 web 資源。