你需要一個 WebSecurityConfigurerAdapter 來對用戶提供安全的校驗,確保用戶能夠訪問必要的資源。
一個基于 Spring Boot 的應用程序將會幫你完成安全的校驗(通過在 HTTP 的基礎授權上添加自己的 WebSecurityConfigurerAdapter)。
這個將會添加 過濾器鏈表的 Order = 0(這個是默認配置),同時將會保護所有的資源,除非你能夠提供正確的配置。
注解 @EnableResourceServer 將會做同樣的事情,但是過濾器鏈表的順序默認是 Order = 3。
因此可以知道 WebSecurityConfigurerAdapter 和 ResourceServerConfigurerAdapter 都是Spring 使用的過濾器,用來對訪問進行過濾的。
但是過濾的順序是多少呢?
WebSecurityConfigurerAdapter 的 @Order(100)
如果我們想讓WebSecurityConfigurerAdapter比ResourceServerConfigurerAdapter優先級高的話,只須要讓前者的@Order值比后者的@Order值更低就行了。
@EnableResourceServer 的注解的 Order 是 3
在spring 的體系里Order值越小優先級越高,所以ResourceServerConfigurerAdapter優先級比另外一個更高,他會優先處理,而WebSecurityConfigurerAdapter會失效。
所以,在不同在上面 2 個定義的過濾器上面,如果你加了注解,會影響過濾器的調用順序。
比如說這個注解,因為添加到代碼中了,所以這個過濾器會被先調用。