Spring Security 第一节 架构篇

打印 上一主题 下一主题

主题 776|帖子 776|积分 2328



前言:

     这两天做项目的时候,发现自己对Spring Security 的理解非常的浅薄,思来想去,决定在网上找教程学习了下,并在这里发文记载下自己的的学习历程。

Spring Security 在后端中的位置

Spring Security 是一个非常复杂,高度定制化的安全框架。要想系统地学习它,就要高屋建瓴,先从全局角度来看它所处的位置。学过Java Web的朋侪们都知道:前端发来的请求先要经过多个原生Filter, 最后才气到达后端。Spring Security 本质上其实就是一个过滤器。这里就要谈到第一个类:DelegatingFilterProxy. 由于Spring Security里有多个过滤器,Spring Secutiy 是把这些过滤器包装起来,作为一个整体来利用。DelegatingFilterProxy就是起到如许的作用,如许讲可能还是有点抽象晦涩不太好懂,举个例子:
 我们假设有3个农民,张三,李四,王二麻子,他们手里头有100吨香蕉要卖到韩国,韩国XXX 会社就是做农业商业的,但是跨国商业很复杂,显然他们不能以个人的名义做这事。

于是他们三找了个专业的记账公司注册了个公司,公司名就叫幸福的小猪。公司的成员就是张三,李四,王二麻子,这下题目就办理了。 

回归正题,在这个案例中张三,李四,王二麻就相称于三个Spring Security 的过滤器,他们要组建的公司 就相称于原生Filter. DelegatingFilterProxy 雷同于记账公司,用于帮助把多个Spring Security 过滤器变成原生的Filter,
也就是说: 从上帝视角来看,Spring Security 在我们的应用中就是一个过滤器
张三,李四,王二麻--------------------------------------------------公司
Spring Security 的过滤器们-----------------------------------------构成一个原生Filter

这里我从官网上找到了架构图,
做一个小小的解释:
Client: 前端
Filter0,Filter2: 过滤器
DelegatingFilterProxy: 是Spring Security 的最外层,有了它, 我们的Spring Security 就是一个过滤器了

题目来了,为什么要把我们的Spring Security 变成原生Filter 呢? 由于只有如许我们的外部请求才气进入Spring Security. 否则Spring Security 接收不到任何的请求,也就废了。
DelegatingFilterProxy 内部结构

在 DelegatingFilterProxy  里面是一个FilterChainProxy  .  这个类的重要用处是管理(也可以说是生存)多个过滤器链,注意不是过滤器,是过滤器链,可以根据请求的路径 不同, 选择不同的过滤器链来处置惩罚请求。下面的架构图,可以看出,当我们的请求 是以api 开头的,就用SecurityFilterChain0

 

 SecurityFilterChain的结构

SecurityFilterChain 的作用就很好理解了, 过滤器链中生存了多个过滤器,这里我就不外多解释了

总结

第一节就是开门见山地来讲了下Spring Security 架构。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

魏晓东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表