Spring Security原理篇(六)梳理一下再出发

  • 陆陆续续流水账一样的写了几篇关于Spring Security的文章,还是写一篇小小的总结,来总结一下前面说到的一些知识点。
  • 前面的几篇文章我们全部都在围绕Filter来做,包括启动原理也是只说了Spring Security是怎样创建一个Filter的bean,让application context进行管理。不过我想Spring Security弄清楚了过滤器的来龙去脉至少在整体上有了一个把握了吧。
  • 前面几篇文章我们说到了几个非常重要的类WebSecurity,HttpSecurity,WebSecurityConfigurerAdapter,WebSecurityConfiguration,这4个类在整个Spring Security的加载过程中显得尤为重要。搞清楚这几个类之间的关系也是很重要
  • 我们也说到一些默认的Filter的加载,知道这11个Filter是怎样被加载到我们的过滤器链也很重要
    下面还是通过一些图来说明吧,发现写文字写不清楚了。哎。。。。。。。

1.初始化步骤

1.1步骤1 WebSecurity实例化以及配置的填充

Spring Security原理篇(六)梳理一下再出发_第1张图片
WebSecurity创建

1.2.Filter构建过程

Spring Security原理篇(六)梳理一下再出发_第2张图片
过滤器构架过程

2.几个类的说明

2.1 HttpSecurity

  • 我们先看一下类图


    Spring Security原理篇(六)梳理一下再出发_第3张图片
    HttpSecurity类图
  • HttpSecurity实现了SecurityBuilder接口,通过调用接口定义的build()方法返回的是DefaultSecurityFilterChain
  • HttpSecurity里面包含了对http请求安全配置的各种方法,这些配置最终会转换成为一个一个的Filter按照Order的顺序,最终形成一个List,但是在配置期间只能是存放在configurers这个Map中,只有等WebSecurity要组合成过滤器链的时候才会转换到过滤器。

2.2 WebSecurity

  • 看一下类图


    Spring Security原理篇(六)梳理一下再出发_第4张图片
    WebSecurity类图
  • WebSecurityHttpSecurity一样实现了SecurityBuilder接口,通过调用接口定义的build()方法返回的是Filter

  • WebSecurity总给我一种包工头的感觉,因为他最终对注册到spring application context中的Filter负责。因为他包含了WebSecurityConfigurerAdapter的信息,他包含了HttpSecurity的信息,他将这两部分信息组合起来创建Filter

3 后面的内容

其实我们还有不少的疑问没有解决掉,比如以下紧接着要去解读的问题:

  • 1.WebSecurity到底存储了什么信息
  • 2.WebSecurityConfigurerAdapter配置的信息都用在哪些Filter
    1. Filter执行的过程中,用户信息存储在哪里
    1. 用户认证的流程是怎样的,我们能修改哪些东西
    1. oauth2怎么做
    1. spring security对于sso的支持
    1. spring cloud网关zuul中怎样结合spring securiy
    1. 写一个demo。
      等等吧,可能中间会穿插很多东西,毕竟一篇文章说太多的东西实在是说不明白

你可能感兴趣的:(Spring Security原理篇(六)梳理一下再出发)