Spring 的 WebSecurityConfigurerAdapter 过滤器

你需要一个 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 个定义的过滤器上面,如果你加了注解,会影响过滤器的调用顺序。

比如说这个注解,因为添加到代码中了,所以这个过滤器会被先调用。