Spring Scurity是spring生態下用于認證和授權的框架,具有高度的靈活性和可擴展行,本節主要對Spring Security的認證過程中進行概括性的介紹,主要介紹在該過程中,會涉及到哪些組件以及每個組件所承擔的職責,希望大家可以對Spring Security的認證過程能夠有一個清晰的認識。
如上圖所示,該圖展示了在Spring Security的身份驗證過程中涉及到的主要組件以及他們之間的關系。這個架構代表了使用Spring Security實現身份驗證的骨架主干。我們在后續給大家講解Spring Security的身份驗證過程中,會經常使用到,需要大家對其有個基本的認識。
如上圖所示
- 用戶對系統發出的請求,會被Spring Security的身份驗證過濾器攔截,攔截之后會進行Spring Security的內部處理流程,而該攔截器會將認證請求委托給身份驗證管理器,即AuthenticationManager.
- 使用驗證管理器會使用身份驗證提供程序,即AuthenticationProvider進行身份的邏輯校驗,而身份驗證提供程序會使用另外兩個組件,即用戶詳情服務和密碼編碼器進行身份的具體校驗過程
- 用戶詳情服務,即UserDetailsService,實現了用戶管理職能,身份驗證提供程序將在身份驗證邏輯中使用它來查找用戶是否存在
- 密碼編碼器即PasswordEncoder實現了密碼的管理,身份驗證提供程序將在身份驗證邏輯中使用它,以便確認用戶輸入的密碼是否正確
- 安全上下文即SecurityContext在身份驗證結束后,保留身份驗證的數據,如用戶名、所具有的角色和權限等,供程序后續調用
以上便是基于Spring Security進行身份認證過程需要經歷的步驟,希望大家能有所了解,后續將針對每個組件給大家做更加詳細的介紹。