(十四)springboot实战——spring securtity安全框架原理之启动流程

前言

本节内容主要介绍spring securtity的初始化启动流程,spring security是通过@EnableWebSecurity注解来启用的,在@EnableWebSecurity注解中主要引入了WebSecurityConfiguration、SpringWebMvcImportSelector、OAuth2ImportSelector、HttpSecurityConfiguration四大组件来完成spring securtity安全框架的初始化。我们这里会主要着重介绍WebSecurityConfiguration组件和HttpSecurityConfiguration组件,这俩个组件是完成spring security的初始化启动的核心组件。

正文

@EnableWebSecurity注解中会启用四大初始化组件

WebSecurityConfiguration:核心是加载spring securtity的过滤器链springSecurityFilterChain

SpringWebMvcImportSelector:在spring中启动web mvc功能

OAuth2ImportSelector:是用于启用 OAuth2 认证和授权功能

HttpSecurityConfiguration:配置安全规则、访问权限、认证方式等

WebSecurityConfiguration组件分析

①创建一个后置处理器RsaKeyConversionServicePostProcessor的bean对象,用于加密

②创建一个DelegatingApplicationListener监听器,用于将该事件委托于其它监听器处理

③这里主要是初始化SecurityFilterChain中的过滤器,默认有14个

④创建一个AutowiredWebSecurityConfigurersIgnoreParents,自动装配自己的Web 安全配置,不受父容器的影响

⑤注入setFilterChainProxySecurityConfigurer组件,用于初始化SecurityConfigurer和webSecurity

⑥初始化springSecurityFilterChain过滤器链,用于处理web请求的安全认证

⑦创建SecurityExpressionHandler处理器,用于在访问控制表达式中处理安全性表达式,主要用来实现权限授权的处理

 HttpSecurityConfiguration组件分析

①创建一个HttpSecurity对象,用于定义Web 应用程序的安全性规则,这里会使用一些默认配置

②初始化一个认证管理器,默认是内存级别的,一般使用的会使用数据库的方式

 SecurityFilterAutoConfiguration配置类分析

如果容器中存在springSecurityFilterChain过滤器,将该过滤器链注册到DelegatingFilterProxyRegistrationBean这个代理注册器Bean中,方便后续取用

 DelegatingFilterProxyRegistrationBean代理注册器分析

①在web容器启动后,会初始化ServletContext的上下文对象

②在初始化上下文时,会调用DelegatingFilterProxyRegistrationBean代理注册器的getFilter()方法,初始化创建DelegatingFilterProxy对象,并将springSecurityFilterChain的bean名称传给DelegatingFilterProxy过滤器代理类

DelegatingFilterProxy 分析

①获取springSecurityFilterChain的bean对象,

②将Spring Security的过滤器委派给此Bean处理

③调用spring security 委派的代理过滤器FilterChainProxy

④获取spring security过滤器

⑤挨个执行spring security过滤器的doFilter方法

结语

关于spring securtity安全框架原理之启动流程的内容到这里就结束了,我们下期见。。。。。。

  • 23
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

厉害哥哥吖

您的支持是我创作下去的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值