Spring Security原理
Spring Security採用的是責任鏈的設計模式,有一條很長的過濾器鏈,首先客戶端發起一個請求,進入Security過濾器鏈,然後判斷是否為登錄,最後根據URI去找對應的鑑權管理器,進行鑑權。
流程圖
流程說明
- 客戶端發起一個請求,進入Security 過濾器鏈。
- 當到LogoutFilter 的時候判斷是否是登出路徑,如果是登出路徑則到logoutHandler ,如果登出成功則到logoutSuccessHandler 登出成功處理,如果登出失敗則由ExceptionTranslationFilter ;如果不是登出路徑則直接進入下一個過濾器。
- 當到UsernamePasswordAuthenticationFilter 的時候判斷是否為登入路徑,如果是,則進入該過濾器進行登入操作,如果登入失敗則到AuthenticationFailureHandler 登入失敗處理器處理,如果登入成功則到AuthenticationSuccessHandler 登入成功處理器處理,如果不是登入請求則不進入該過濾器。
當到FilterSecurityInterceptor 的時候會拿到uri ,根據uri 去找對應的鑑權管理器,鑑權管理器做鑑權工作,鑑權成功則到Controller 層否則到AccessDeniedHandler 鑑權失敗處理器處理。
推薦教學:《
Java教學###》######
以上是Spring Security原理的詳細內容。更多資訊請關注PHP中文網其他相關文章!