跳到主要内容

Spring Security源码(五):FilterChainProxy 是如何创建的?

文章目录

  • 〇、上篇回顾
  • 一、WebSecurityConfiguration
    • setFilterChainProxySecurityConfigurer()
  • springSecurityFilterChain()
  • 二、FilterChainProxy的创建过程
    • 创建过程
  • performBuild() 介绍
  • securityFilterChainBuilders 什么时候插入的?
  • 三、Debug
    • 结果分析
  • FilterSecurityInterceptor
  • 四、总结
  • 五、系列文章
    • Spring Security 系列
  • Spring Security OAuth 系列

〇、上篇回顾

  • 整个框架的核心就是构建一个名字为 springSecurityFilterChain 的过滤器,它的类型是 FilterChainProxy

  • 框架的主要参与者是 建造者 和 配置器 ,其中 WebSecurity 和 HttpSecurity 都是 建造者

  • WebSecurity 的构建目标是 FilterChainProxy 对象,即核心过滤器 springSecurityFilterChain

  • HttpSecurity 的构建目标只是 FilterChainProxy 对象中一组 SecurityFilterChain 的一个

  • 配置器 主要关注 init()、configure() 方法


一、WebSecurityConfiguration

> 第一篇《Spring Security源码(一):整体框架设计》文章提到,看源码可以从 @EnableWebSecurity 注解开始,点进去发现它引入了类 WebSecurityConfiguration,类中正好有生成核心过滤器的Bean方法 springSecurityFilterChain() ,还需要关注类中另一个方法 setFilterChainProxySecurityConfigurer(),一起来看看。

setFilterChainProxySecurityConfigurer()