00:04
啊。不过一般好像这种这种有这种桥段呢,都是正面人物是吧,说这个人多么的鞠躬尽瘁,多么的那个啥是吧。啊,也有是吧。来下一个呢,下一个就是。下面咱们就可以来写这个filter了哈,下面咱们来写这个filter。Filter,咱们先创建一个类。这个做filter的这个类哈。来咱们到我们这是到API里边。哎,在这里边呢,咱们去永恒。
01:01
啊,不是一片瞎说。呃,注里边去创建一个东西。呃,这个来一个filter。这是一个C。嗯。这个起个什么名呢?Access filter。访问的一个filter。哎。创建这个类,然后呢,里边分别是有这么几个方法啊。呃,这个类的话呢,需要去继承一下,我们这个叫做做filter。啊,这么一个,这是一个过滤器哈,继继承一下它。呃,然后呢,这边给它加一个component注解。哎,加一个component注解。
02:00
然后呢,依次咱们去实现这个数的filter等等啊就这几个方法。这是我们说这个类哈,这个类啊,这是。呃。这是类声明的这个部分。哎,然后下边呢,咱们先去先考虑这个树的filter。嗯,啥样的要啥样的是要过滤的啊,啥样的是放行,啥样的是要做检查。呃,我们刚才的刚才写的工具方法呢。我们刚才那个叫啥来着。算了,我。想不起来了。我写到哪了?啊,放这儿了哈,对。呃,就这里边吧,它这些东西呢,都是根据so pass来判断的,So pass呢是从request对象里面拿到的,Request对象呢,就是我们眼下首先要拿到的一个对象啊,所以说这里边呢,我们首先第一个呢是借用。
03:16
呃,先去获取一个request context这个对象。A request context。这个get current context啊。得到这个对象。第二个呢,在通过request。Context对象获取当前的请求的对象。这个咱们当时给大家提过,这个是。这个快对象是以什么形式传过来的呀?啊,你看班长记得很清楚哈。对,县城本地化。
04:00
Thread local。我,我以前就没有想到这么绝妙的例子。我觉得这个这个例子简简直是太传神了啊,我只有在咱们班才能获得这样的灵感。哎,在local啊,同一个线程啊,你它是肯定在前面某一个地方绑定到线程上面的,然后我们这儿呢,用的时候再从线程上面把它取出来啊,就是当前的这块对象。每一个线程就是和一个请求是对应的。所以说呢,把这请求对象绑定到线程上面,这个很合适啊,很恰如其分啊,然后完全没有问题,不会有出入的啊,每个线每个请求是每个自己的线程吧啊,它保存到自己线程上面也不会有互相的干扰,你有并发也没问题。呃,我这儿写一下啊,这个就是说呢。嗯。说是,呃,框架底层是借助我们这个th logo啊,从当前线程上获取。
05:03
呃,事先。绑定的。啊,这个这个块对象啊。哎,那么拿到这块对象呢,下一步呢,咱们就是去获取一下这个so pass的值。没有,它就是get survey pass啊,这不是请消息头里边的。嗯,然后呢。咱们可以先判断它是不是属于这个里边啊,是不是属于这个一些个,呃,特定的放行的请求。那就根据我们pass判断当前请求。是否?对应可以直接。放行。这个特定的。
06:02
呃,功能。也就是说呢。呃,哎。对,应该是呀。Pass。Pass resource,这咋没有提示呢?他得依赖下。不用就就肯判断一下不完事儿了吗?现在我们要现在是需要去依赖一下,这个我们做呢,看来是没有依赖这个悠久哈。让这个做呢,去依赖一下这个月球。啊,是我们这个哈。
07:00
得依赖一下他,这才可以用。呃,点这个pass。Pass set这个啊叫con方法pass传进去。呃,它会,它会返回一个一个判断的一个结果。还不能直接返回它啊,因为就是这个地方,它如果是处的话。就说明他在这里边儿。呃。我们我们我们捋一捋这个事儿哈,这儿如果是处的话。他如果是true的话,我们应该是return一下false哈。是应该return下放,就说后边呢,就下边这个是不走的,就让他就就等于说让他放行。说如果,哎,嗯。
08:00
当前。请求是。呃。可以直接放行的特定功能请求则。返回FOX放行。那他如果不是呢,他这如果是false不走这个啊,他继续往后边走。那这个时候其实还有可能是这个静态资源。静态资源是不满足这个的,但是也要放行啊,所以说呢,就是说我们下一步呢,在。呃,判断当前请求是否为这个静态资源。那就是。用它呢去调一个方法榨。把还是把so pass进去诶。这给他来一个叫做榨汁result。价四代。如果这个也为真的话呢。呃,那么就还是return。
09:01
如果它为甲的话呢,就。那到这就说明就是不是特定功能的,也不是静态资源,那就要那啥了是吧,所以这时候其实就这就可以返回了。如果我们想这个简化一点的话。返回他的区反。这是代码,这样是比较简洁的哈,但是我们你得琢磨清楚了哈。呃,你看啊这个。工具方法返回处。说明当前请求是静态资源请求诶。呃。取反为false。哎,表示放行啊,不做。登录的检查。这个我们,嗯,工具方法返回false。
10:01
说明当前请求不是可以。不是可以放行的。特定。请求以不是静态资源啊,取反为处。呃,表示。嗯,需要做。登录的检查。啊,就这个事儿,他这得反映一下,我们确认一下啊,确认一下,看这看一下这个方法的这个注释啊。呃,这个方法返回处,那么这个run方法呢,Should be的run方法就要执行,我们执行run方法呢,就是要去检查它有没有登录。啊,所以在这这个。呃,这个东西在这是返回处的情况下,要过滤返回false呢就放行。这个和我们MC的燃器呢,那个正好是相反的MC,我们器呢,这个有一个pre handle。
11:01
Handle,这里边儿呢,你返回处就放行了,返回false呢就。就不放行啊,就就就不往后走了,在这这个是这个是反过来了哈,Run的话就反而是其实是。也不能叫不放行吧,就它才开始过滤。啊,他在run里边的话呢,你后续你做什么是你自己去决定的。
我来说两句