七叶笔记 » java编程 » springboot整合过滤器实战步骤

springboot整合过滤器实战步骤

下面先建立一个MVC的基本请求接口,如下:

一、普通的接口访问

如上,先新增一个testController。

先用postman测试一下通不通。

结果是通的,准备工作完成。

二、增加一个过滤器

下面增加一个过滤器来实现一个接口拦截并处理token校验的模拟。

简单处理,有如下两个步骤。

1、自定义过滤器

实现servlet的Filter接口,并重写他的三个方法,分别是init,doFilter,destroy。

init:过滤器初始化时回调,可以在这里做过滤器的初始化操作,例如设置白名单路径列表。doFilter:过滤器初始化后并在请求到达后端且进入到注册过滤器设置的匹配路径时回调。destroy:过滤器销毁时回调。

上图是一个简单实现token校验是否为空,没有进行正确与否的校验,可以引入redis(前面章节有讲到)或者其他的存储,然后进行一个正确性的校验。从request中获取token头,若存在则调用doFilter方法(通过过滤器),否则不作操作(就是不通过过滤器,不会抵达controller)。

2、注册到容器

将自定义过滤器注册到容器中,通过FilterRegistrationBean的一系列方法设置过滤器的参数,例如需要过滤的路径,过滤器的优先级等等。

3、演示一下效果:

不带token:

带token:

三、增加两个过滤器

下面再整一下当存在多个过滤器时,怎么设置哪一个过滤器先拦截,哪一个后执行(优先级)。

跟第二节一样,再整一个自定义过滤器。

修改注册过滤器的类。

类似第一个过滤器的注册,再注册一个第二个过滤器即可,可以设置不同的拦截路径,各负责各的逻辑处理,此处只演示一下执行顺序问题,第一个设置Order参数为2,第二个设置为1,越大的越后执行。设置后,用postman测试一下。

调用接口后发现,先进入了第一个过滤器的doFilter方法,再进入的第二个过滤器的doFilter方法,验证order参数是有效的。

到此这篇关于springboot整合过滤器实战的文章就介绍到这了,更多相关springboot整合过滤器内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!

相关文章