Spring Security原理篇(六)梳理一下再出发
2018-09-18 本文已影响148人
怪诞140819
- 陆陆续续流水账一样的写了几篇关于
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实例化以及配置的填充
WebSecurity创建1.2.Filter构建过程
过滤器构架过程2.几个类的说明
2.1 HttpSecurity
-
我们先看一下类图
HttpSecurity类图 -
HttpSecurity
实现了SecurityBuilder
接口,通过调用接口定义的build()方法返回的是DefaultSecurityFilterChain
-
HttpSecurity
里面包含了对http请求安全配置的各种方法,这些配置最终会转换成为一个一个的Filter按照Order的顺序,最终形成一个List<Filter>,但是在配置期间只能是存放在configurers这个Map中,只有等WebSecurity要组合成过滤器链的时候才会转换到过滤器。
2.2 WebSecurity
-
看一下类图
WebSecurity类图 -
WebSecurity
和HttpSecurity
一样实现了SecurityBuilder
接口,通过调用接口定义的build()方法返回的是Filter
-
WebSecurity
总给我一种包工头的感觉,因为他最终对注册到spring application context
中的Filter负责。因为他包含了WebSecurityConfigurerAdapter
的信息,他包含了HttpSecurity
的信息,他将这两部分信息组合起来创建Filter
3 后面的内容
其实我们还有不少的疑问没有解决掉,比如以下紧接着要去解读的问题:
- 1.
WebSecurity
到底存储了什么信息 - 2.
WebSecurityConfigurerAdapter
配置的信息都用在哪些Filter
中 - Filter执行的过程中,用户信息存储在哪里
- 用户认证的流程是怎样的,我们能修改哪些东西
-
oauth2
怎么做
-
-
spring security
对于sso
的支持
-
-
spring cloud
网关zuul
中怎样结合spring securiy
-
- 写一个demo。
等等吧,可能中间会穿插很多东西,毕竟一篇文章说太多的东西实在是说不明白
- 写一个demo。