如何写一个给自己的框架写一个优雅的Java Config模块(三)

Spring Security的架构

  1. Spring Security提供了三个顶级的配置对象,AuthenticationManagerBuilder。、、HttpSecurity、WebSecurity,这三个虽然都是代码意义上的顶级构建对象,但逻辑上只有WebSecurity是最顶级的,WebSecurity的构建要依赖HttpSecurity,而HttpSecurity的构建要依赖AuthenticationManagerBuilder。
  2. WebSecurityConfigurerAdapter是对外提供自定义配置的ConfigurerAdapter,其提供了对上边三个顶级对象的构建的回调方法,这里注意,有两个是内部回调,一个是接口回调:
  3. WebSecurityConfiguration中有个setFilterChainProxySecurityConfigurer方法,用@Autowired标识了,容器启动的时候就会调用这个方法,这个方法里做了三件事
    1. new一个webSecurity这个逻辑顶级对象
    2. 使用AutowiredWebSecurityConfigurersIgnoreParents对象收集所有的自定义配置的ConfigurerAdapter
    3. 将收集的WebSecurityConfigurerAdapter对象添加到WebSecurityConfiguration持有的WebSecurity对象中。
  4. Configuration中有个标识了@Bean的方法,调用了webSecurity.build()方法,build方法中有init流程和configure流程,init流程中会调用所持有的WebSecurityConfigurerAdapter对象的init方法,configure会调用所持有的所有的WebSecurityConfigurerAdapter的configure方法。performBuild方法将所有的配置产生的所有的Filter用filterChainProxy整合,返回一个FilterChainProxy对象。
  5. 整个Spring Security的目的就是为了构建上边的Filter对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈振阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值