天天看點

Spring Security(3):資料庫管理

核心處理流程

Spring Security(3):資料庫管理

1:當一個使用者登入時,會先執行身份認證。

2:如果身份認證未通過,則會要求使用者重新認證。

3:如果身份認證通過,則會調用角色管理器判斷它是否可以通路。

這裡如果我們需要使用資料庫中資料進行身份認證,則需要自定義使用者登入功能。Spring Security為我們提供的UsrtDetailsService接口。

UserDetails.java

UserDetails中的任何一個方法傳回false,使用者的憑證都會視為無效。

Authentication

實際上Spring Security進行安全通路控制使用者資訊的對象是Authentication。

Authentication有已認證和未認證兩種狀态,在作為參數傳入認證管理器的時候,它是一個未認證的對象,它從用戶端擷取使用者名/密碼,并由系統自動構成一個Authentication對象;而UserDetails代表的是一個使用者安全資訊的源,這個源可以是從資料庫擷取,Spring Security要做的就是将這個為認證的Authentication對象和UserDetails進行比對,成功後将UserDetails中的使用者權限資訊拷貝到Authentication隻,組成一個完整的Authentication對象,與其它元件進行共享。