00:01
各位大家好,欢迎继续收看上硅谷视频课程,我们继续来学习three security,刚才内容中呢,咱通过查看源码详细看了一下security它的认证流程是怎么样的,包括通过源码每一部分我们基本上都看到了,那下面咱们还是通过源码再详细看一下spring里边它的权限访问流程到底是怎么样的,那我下面带着各位咱就来详细来看一下。权限访流程,那这过程怎么样?我来强调,在刚才认证过程中呢,我们主要用到一个过滤器,就这个username passor authoration filter,而我们在权限访问过程中要用到两个过滤器,一个叫exceptation transaation filter,还有一个叫filter security intercept,它主要是对这两过滤器进行这个全反应过程,所以咱们下面就通过这两过滤器先面来看一下它的过程到底是怎么样的,那我们下面就来看一下啊,首先第一个呢,咱先看一下这个exception transaionation filter这个管滤器,它里边是做了什么事情。
01:18
那我们现在来搜索一下。这个过滤器就是一个exception,这个过滤器就是它,咱把它打开,我们来看一下啊,这个过滤器呢,是一个处理异常的,咱们不需要自己配置,就是它里边会执行,而对于我们前端发送请求,它会直接进行放行,它做了什么事情呢?就是捕获咱们抛出的异常进行处理,也就是说呢,比如现在我这没有权限,是不是有异常抛出,那用它进行处理,比如刚才我们做那个成功失败里边会有一些异常的抛出,那里面就对你抛出的异常做一些相应的这些处理啊,它主要就是做这个事情的。
02:01
那这里边咱来看一下啊,因为它是一个过滤器嘛,所以里边肯定有这么一个do filter方法,这个方法我们看啊,这个方法中做了很多事情,首先我们看哪边的第一部分,大家看这部分啊。这问什么意思,是不是就放行,也就是说啊,当你现在比如说你一些前端发送请求,那它就不进行拦截,直接进行放行,但是这里边如果你有后端的,就是比如说我们现在在后端抛出的异常,这过程中就是处理你抛出的异常,对你抛出的异常进行一些相应的处理,它主要就是做这些事情,包里边就是针对你具体异常做不同的一些处理。比如说我们看一下,比如你看这个叫alls CI是不是exception,就是我们访问需要认证,如果你不认证,它里面有抛异常,所以它就对这个异常进行处理,包括里边比如说你访问受限等等异常,里边也会做相应的这些处理,所以这就是exception filter的过滤器中,它给我们做的事情,那这里边给各位我来标注一下啊。
03:14
主要就是这么两部分,首先第一部分,如果说你是前端的一些请求,那他就直接进行放行,这是第一部分,然后这里边就是它在异常中,如果说你是。抛出的那些异常,比如说我们在后台中抛出异常,那里边肯定要进行补货。然后我们进行一些相应的处理。啊,进行处理。比如说你现在没有访问权限,或者访问受限,那里面会做不能处理,比如你看这个author exception就是类似这个操作,所以这个啊是我们说的第一过滤器里边一些基本描述,就是1EXCEPTION这个过滤器专门做异常处理的。
04:05
这各位给他知道啊,因为这里边的处理方案就是当他失败是抛出异常,这里边用补货异常的方式做操作,然后这个说完之后,咱们再来看下一个例题,就这个filter security intercept,看这里边它是做什么事情的。那咱们到里边,我们也是搜索一下啊,这个过滤器。我在里边搜索一下。我们看啊这个啊,然后给各位解一下。这是我们要看到第二个过滤器。然后这个过滤器是做什么呢?给各位说一下啊,咱之前也介绍过,这个过滤器是我们过滤链中的最后一个过滤器,该过滤器它主要做的事情是什么呢?根据资源权限来判断当前请求是否能访问这个资源,如果说访问受限,就不能访问抛出异常,若能访问,那进行我们对应的操作,所以它里边主要对你的请求,对我当前的资源是否能进行访问,做一个权限的这么一个判断,它主要是做这个事情,那这里边咱们也是看一下源码。
05:22
我们看啊,在源码中,首先咱们还是找这个叫do filter,在do filter里边我们看啊,这位置就是得到,就是你的过滤器,然后里边一个叫是不是以work,以work立为就是一个执行方法,那我们还得以work里边它就做了一些处理,比如说当前判断。当前一些操作,包括做处理,然后里边我们找的那个比较核心的部分,就是它的核心的主要应该是在就是后面这个位置啊。他做了什么事情呢?首先第一个你看啊。其实这一行做的事情就是根据你资源配置来判断当前请求是否有访问这个资源的这个权限,如果不能访问它怎么样,就抛出异常,若能访问,那进行我们的项操作,然后这里边这行代码就是方向资源,然后做这个操作,当然我强调啊,它这里边仿资源这个过滤器是需要在我们spring lvc里边的,之前因为SPVC,咱知道是不是一个核心的一个东西叫dispa s,它要在它之前进行这么一个配置。
06:29
然后这里边会通过spring security里边的所有过滤器。然后进行我们项目操作啊,就说该请求呢,还需要通过损YVC的这里边这过程进行这么一个操作,所以这个啊是咱说的这个就是资源的过滤器,判断当前请求对资源是不是有访问这个权限,如果不能访问抛出异常,但是它要经过损然VC那个过程才能进行我们的对应的操作。所以这个啊,是咱说的这么一个过滤器。给各位啊,这里边也解一下啊。
07:02
首先第一个就是判断请求是否有这个权限。然后这里边就是这个过程中,你可列为要经过这个spring mvc的这个处理器的过程才能做到,就用这个操作。所以这个啊是我们说的。第二过滤器,Filter c security inter self过滤器,所以他在做这个权限访问过程中,就要经过这两个过滤器,然后完成这个操作,这是咱们对这个过程的源码的一个基本查看,各位把这过程给定要知道啊,所以这个我们就说完了。
我来说两句