友快網

導航選單

Spring Security(3)

您好,我是湘王,這是我的頭條號「湘王說」,歡迎您來,歡迎您再來~

前面執行寫好的程式碼之所以沒有任何顯示,是因為還沒有對Spring Security進行配置,當然啥也不顯示了。這就好比你坐在車上,卻不打開發動機,車子當然跑不起來。所以咱們就來讓它跑起來。不過在配置之前,有必要對Spring Security的登入流程做個大致瞭解。

如果深入原始碼去了解,這個玩意及其複雜,但是沒必要,知道它的機制就行了。就好比你買車也不必把發動機拆開去看它是怎麼工作的吧。簡單來說它就是下面這些步驟:

1、Spring Security透過AuthenticationManager介面進行身份驗證

2、ProviderManager是AuthenticationManager的一個預設實現

3、ProviderManager把驗證工作委託給了AuthenticationProvider介面

4、AuthenticationProvider的實現類DaoAuthenticationProvider會檢查身份認證

5、DaoAuthenticationProvider又把認證工作委託給了UserDetailsService介面

6、自定義UserDetailsService類從資料庫中獲取使用者賬號、密碼、角色等資訊,然後封裝成UserDetails返回

7、使用Spring Security還需要自定義AuthenticationProvider介面,獲取使用者輸入的賬號、密碼等資訊,並封裝成Authentication介面

8、將UserDetails和Authentication進行比對,如果一致就返回UsernamePasswordAuthenticationToken,否則丟擲異常

下面是認證流程圖:

首先重寫loadUserByUsername:

因為UserDetailsService返回了封裝的UserDetails,所以需要再自定義AuthenticationProvider返回Authentication介面:

接著來實現實現WebSecurityConfigurerAdapter,它透過重寫WebSecurityConfigurerAdapter中的相關方法(一般是configurer)來自定義配置。WebSecurityConfigurerAdapter主要做幾件事:

1、初始化

2、開啟Security

3、配置各種過濾器,實現驗證過濾器鏈

下面是它的程式碼:

接著用postman進行測試:

回顧整個呼叫過程,它的時序圖是:

但是等等:好像除了/login,其他方法都不能正常訪問!

感謝您的大駕光臨!諮詢技術、產品、運營和管理相關問題,請關注後留言。歡迎騷擾,不勝榮幸~

我在頭條

上一篇:SYBR Green qPCR Master Mix 試劑盒 | MedChemExpress
下一篇:一名基層工作人員致廖主任的一封信