Spring 的 WebSecurity 过滤器

你需要一个 WebSecurityConfigurerAdapter 来对用户提供安全的校验 , 确保用户能够访问必要的资源 。
一个基于 Spring Boot 的应用程序将会帮你完成安全的校验(通过在 HTTP 的基础授权上添加自己的 WebSecurityConfigurerAdapter) 。
这个将会添加 过滤器链表的 Order = 0(这个是默认配置) , 同时将会保护所有的资源 , 除非你能够提供正确的配置 。
注解 @EnableResourceServer 将会做同样的事情 , 但是过滤器链表的顺序默认是 Order = 3 。
因此可以知道 WebSecurityConfigurerAdapter 和 ResourceServerConfigurerAdapter 都是Spring 使用的过滤器 , 用来对访问进行过滤的 。
但是过滤的顺序是多少呢?
WebSecurityConfigurerAdapter 的 @Order(100)
Spring 的 WebSecurity 过滤器文章插图
如果我们想让WebSecurityConfigurerAdapter比ResourceServerConfigurerAdapter优先级高的话 , 只须要让前者的@Order值比后者的@Order值更低就行了 。
@EnableResourceServer 的注解的 Order 是 3
Spring 的 WebSecurity 过滤器文章插图
在spring 的体系里Order值越小优先级越高 , 所以ResourceServerConfigurerAdapter优先级比另外一个更高 , 他会优先处理 , 而WebSecurityConfigurerAdapter会失效 。
所以 , 在不同在上面 2 个定义的过滤器上面 , 如果你加了注解 , 会影响过滤器的调用顺序 。
Spring 的 WebSecurity 过滤器文章插图
【Spring 的 WebSecurity 过滤器】比如说这个注解 , 因为添加到代码中了 , 所以这个过滤器会被先调用 。


    推荐阅读