在之前的文章中我們都只配置一個 HttpSecurity,如果業務比較複雜,我們也可以配置多個 HttpSecurity,實現對 WebSecurityConfigurerAdapter 的多次擴展。
八、配置多個 HttpSecurity
1,樣例代碼
(1)配置多個 HttpSecurity 時,MultiHttpSecurityConfig 不需要繼承 WebSecurityConfigurerAdapter,而是在 MultiHttpSecurityConfig 中創建靜態內部類繼承 WebSecurityConfigurerAdapter 即可。
注意:靜態內部類上添加 @Configuration 註解和 @Order 註解,@Order 註解表示該配置的優先級,數字越小優先級越大,未加 @Order 註解的配置優先級最小。
(2)這裏我們創建了兩個靜態內部類來配置兩個不同的 HttpSecurity,一個用來處理“/admin/**”模式的 URL,另一個處理其它的 URL。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
2,運行測試
(1)啓動項目,我們使用 root 用戶進行登錄,所以登錄後可以訪問除 /admin/* 外所有接口。
(2)而由於 /admin/hello 接口需要 ADMIN 角色,因此 root 用戶仍然無法訪問。