阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_16-网关-过虑器

4.5 过虑器
Zuul的核心就是过虑器,通过过虑器实现请求过虑,身份校验等。
4.5.1 ZuulFilter
自定义过虑器需要继承 ZuulFilter,ZuulFilter是一个抽象类,需要覆盖它的四个方法,如下:
1、 shouldFilter:返回一个Boolean值,判断该过滤器是否需要执行。返回true表示要执行此过虑器,否则不执行。
2、 run:过滤器的业务逻辑。
3、 filterType:返回字符串代表过滤器的类型,
如下
pre:请求在被路由之前执行
routing:在路由请求时调用
post:在routing和errror过滤器之后调用
error:处理请求时发生错误调用

4、 filterOrder:此方法返回整型数值,通过此数值来定义过滤器的执行顺序,数字越小优先级越高。

定义测试类‘

一定要继承ZuulFilter


实现方法

这个类 一定要用@Component 因为他是spring 容器的一个Bean




测试方法

过虑所有请求,判断头部信息是否有Authorization,如果没有则拒绝访问,否则转发到微服务。

从request里面拿到头信息,所以需要先得到request。Zuul给我们提供了RequestContext获取上下文对象

从上下文中就拿到了request



设置响应,上面还需要拿到Response


每一个路由进来都会经过过滤器

请求测试

进入到断点


结束


 

原文地址:https://www.cnblogs.com/wangjunwei/p/11645132.html