上篇回顾
- 框架的核心是一个过滤器,这个过滤器
名字
叫springSecurityFilterChain
,类型
是FilterChainProxy
WebSecurity
和HttpSecurity
都是建造者
WebSecurity
构建目标是FilterChainProxy
对象HttpSecurity
的构建目标仅仅是FilterChainProxy
中的一个SecurityFilterChain
。@EnableWebSecurity
注解,导入了WebSecurityConfiguration
类WebSecurityConfiguration
中创建了建造者对象WebSecurity
,和核心过滤器FilterChainProxy
从WebSecurityConfiguration
开始
WebSecurityConfiguration
中需要关注两个方法:
setFilterChainProxySecurityConfigurer()
方法创建了
WebSecurity
建造者对象,用于后面建造FilterChainProxy
过滤器springSecurityFilterChain()
方法调用
WebSecurity.build()
,建造出FilterChainProxy
过滤器对象
WebSecurity
的创建过程:setFilterChainProxySecurityConfigurer()
方法
该方法负责收集配置类对象
列表webSecurityConfigurers
,并创建WebSecurity
:
@Value("#{}") 是SpEl表达式通常用来获取bean的属性或者调用bean的某个方法。
方法执行时,会先得到
webSecurityConfigurers
并排序(所有实现了We