Spring Cloud Zuul实现Pre和Post过滤器,访问请求必须带参数(Token),返回带自定义参数

每次请求的url时带上必要参数,如:token,每次返回往请求头设置参数

 

一、每次请求带上必要参数

1、在Zuul网关服务创建filter文件夹,并创建一个TokenFilter类,继承ZuulFilter,实现方法该类的方法
 
2、filterType方法的返回类型要为PRE_TYPEfilterOrder方法返回类型为PRE_DECORATION_FILTER_ORDER - 1shouldFilter方法为true,然后在run方法里写业务代码,前三者返回值都是引入了此类import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants
 
3、业务代码逻辑:(1)首先获取上下文;(2)在通过上下文获取request;(3)在通过请求来获取token;(4)然后在进行token的判断,并设置信息
Spring Cloud Zuul实现Pre和Post过滤器,访问请求必须带参数(Token),返回带自定义参数_第1张图片
 
4、这样每次访问都必须带上token参数,且不能为空,否则,访问失败
Spring Cloud Zuul实现Pre和Post过滤器,访问请求必须带参数(Token),返回带自定义参数_第2张图片
 
Spring Cloud Zuul实现Pre和Post过滤器,访问请求必须带参数(Token),返回带自定义参数_第3张图片
 

补充:实际业务肯定没这么简单,所以可以根据实际情况来获取token,如:token存在redis中,就获取redis中的token来进行比较,来进行业务判断

 

二、每次返回往请求头设置值

1、在filter文件夹下创建AddresponseHeaderFilter类,并继承ZuulFilter类,实现其方法
 
2、与TokenFilter类不同的是,这里的filterType方法返回的类型是POST_TYPEfilterOrder方法返回类型是SEND_RESPONSE_FILTER_ORDER-1
 
3、业务代码逻辑:(1)首先获取上下文;(2)通过上下文获取response;(3)然后在对response进行设置
Spring Cloud Zuul实现Pre和Post过滤器,访问请求必须带参数(Token),返回带自定义参数_第4张图片
 
4、这样每次请求返回的请求头都回带上你设置的参数
Spring Cloud Zuul实现Pre和Post过滤器,访问请求必须带参数(Token),返回带自定义参数_第5张图片
 

你可能感兴趣的:(SpringCloud)