00:01
各位大家好,欢迎继续收看上硅谷视频课程,在刚才内容中呢,我们完成了spring security的一个入案例,让各位对这个安全框架有了一个简单的认识,咱们也感受了一下它里面的一个过程,那我下面呢给各位就来介绍一下security一个基本原理,让大家知道一下它底层到底用了什么技术,然后它底层这个技术的执行过程是怎么样的,那我下面给各位做一个详细的介绍,我在这里边给各位来说一下。首先第一个各位要知道spring security它的本质上是个什么东西,我这里写到了是个什么。就是一个过滤器列,那我在里边给大家写一下。Spring security,它本质上就是一个过滤器列,也就说在spring security里边呢,会有很多的过滤器,这些很多的过滤器构成了一个过滤器电。
01:07
然后我在这个文档中给各位列出了一些比较常见过滤器,它底层大概有十几个过滤器,这些过滤器在我项目一启动就可以进行加载,然后里边当你过滤到里边的请求内容的时候,会执行对应的过滤器,然后实现里边对应的功能。所以它本质上是一个叫过滤电。这个知识点各位应该很熟悉,是Java外中一个进内容,就关于这个过滤器,过滤器嘛,在服务启用时候,创建直行到你具体的拦截那个请求的时候,会执行里边的do filter方法,然后你有多过滤器进行过滤,它叫过滤列,每个过滤器要做到放行操作才能执行下一过滤器,这个叫过滤电。如对这本知识不是很熟悉的同学,建议同学去看一下Java web中内容,你把web学好之后再来学习本文课程,所以这是它一个本质上的一个说明,是一个过滤系列,然后它里边呢有很多的过滤器,这过滤器呢,我就找几个比较典型的过滤器,咱们通过查看spring security的源码,来看一下里边几个过滤器它的底层是怎么做到的。
02:27
那各位来写一下。咱们就通过查看源码来找三个过滤器给各位来做一个说明,因为其他的都大同小异,那我们看第一个过滤器,这个过滤器叫filter security intercept,这个过滤器呢是一个叫方法级的一个全过滤器,就是你这里边操作哪些方法能够访问,哪些方法不能访问,然后它位于过滤链的对比层,就是它的最后一个过滤器,所以咱们先看第一个叫filter security intercept。
03:03
把这个咱通过看源码,先来看一下它的底层是怎么样一个进行过程,那我们来看一下啊,我们打开这个I idea工具。然后用快捷键ctrl shift n在里边搜索这个过滤器,Filter security intercept。然后咱把它直接复制过来,我们来搜索全部大家看是这个把这个打开,然后咱看一下啊,首先第一个咱们清楚看到这个类。实现了谁是不是filter接口,所以它肯定是一个过滤器,过滤器中的有几个方法,包括初始化,包括销毁,还有一个是什么,就这个do filter do filter是你真正过滤方法,然后咱看这方法中啊,首先一个对象里边传入你的request的response,还有这个key啊,就是放行那个对象操作,然后直行里边这个叫以work方法,以work方法是什么?
04:06
是不是就执行了,就是它里边得到你这个。对象,然后把它执行,执行的方法中,咱看到在它前面部分其实很简单,虽然写了很多做的是什么,是不是就判断呀,是否等于空,就做了各种判断,然后做完各种判断之后,首先做了这件事情。大家看这方法啊,这方法其实说的很明确,是不是叫be before before什么意思,是不是之前,所以你记住啊,这句话的含义是什么,它就表示啊,它这个过滤器之前有过滤器,如果之前过滤器做了放行操作,那才往下进行执行。然后下面就是执行它本身的这个过滤器,这个方法就是do filter执行,包括咱看这方法do filter。是不是到了过滤器本身啊,然后里边做这个就是具体的这么一个执行,所以这个啊,就是咱们看的第一个过滤器,所以我们发现filter security intercept是一个方法级别过滤器,它里边就是先得到你这个对象让它执行,先看它之前的过滤器是否放行,如果放行之后再来执行这个过滤器啊,当然里边有它更具体逻辑,所以它本身是这么一个过滤器,这个各位给他知道啊,咱通过它做了一个简单的查看,这是第一个。
05:29
然后咱们再看第二过滤器,这个过滤器叫exception transion,咱看这过滤器。那各位来写一下。咱们再来查看。第二个。我们看到啊,这个过滤器是什么呢?它是一个叫异常的过滤器,是用来处理认证授权过程中抛出的异常,用这个来处理,那咱们也是做个查看。Ctrl shift n。
06:00
然后到里边我们来看一下。这个管理器。然后大家看啊,过滤器嘛,不用说了,咱是肯定找到它那个do filter方法,然后你看里边啊,有这个request response,然后里边放行,包括里边判断你的各种异常,每个异常做不同的这个处理,大家看到这个就是一个异常处理器,判断你认证授权过程中的异常,所以这个啊是它一个简单查看,然后除了它之外,里边还有一个过滤器,这个过滤器。叫username password author。再看这个过滤器,也给大家做个说明。但是这个过滤器呢,其实这个名字我们应该能够猜到它是干什么的,大家看啊,Username password是不是用户名密码啊,所以这个过滤器是干什么的,它就对咱们post的请求过程中,你表单中的用户名和密码做校验,比如说我们得到表单挑过来用密码,然后进行校验。
07:07
这体过滤器,那咱们也是。做一个查看。把这个再看一下啊。看它这里边。然后咱们打开,首先大家看啊,这里边首先有一个方法叫这个accept这个方法,然后这个方法中它是干什么的呢?就是得到你的用户密码,首先他判断提交方式是否是POS的,如果你是POS提交,那么用户密码得到,再做这么一个相关的校验。这大家看到里边是这么一个过程,当然这个校验呢,就是咱们在写入门案例的时候,用的是它默认的用户名,User和密码,但是实际中这个校验咱们肯定是不是要查我们的数据库,所以咱后面会说怎么去做,你先知道这过滤器里面做的事情就是。判断你POS提交过来的表单中的用户密码,做这个校验,这是判断提交方式,这是得到用户名,这是得到密码,然后这里边是做这个校验,校验呢,咱在入门中是用它默认用户名,实际中咱肯定是查数据库,所以这个啊是咱们简单介绍的三个最基本的过滤器,各位通过我的介绍对里边的过程有一个基本认识,因为就是咱们外部阶段的基础过滤器里边嘛,Do filter方法中我们做不同的操作,咱们介绍了三个,第一个。
08:36
方法即为过滤器,第二个异常过滤器,第三个校验用户名密码的一个过滤器,所以这个啊是关于它的一个最基本说明,Security本质上就是有很多的过滤器,它是一个叫过滤器列,然后里边大概有十几个过滤器,我这里边通过三个给各位做了一个基本的介绍。
09:00
所以这是关于过滤器的一个基本说明。
我来说两句