你需要一个 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 个定义的过滤器上面,如果你加了注解,会影响过滤器的调用顺序。
比如说这个注解,因为添加到代码中了,所以这个过滤器会被先调用。