Zuul可以再陆游的时候对拦截的请求参数进行处理,确定如何响应。

application.yml

server:port: 80
###网关名称
spring:application:name: service-zuul
###注册中心
eureka:client:service-url:defaultZone: http://localhost:8100/eureka/register-with-eureka: truefetch-registry: true
###配置网关反向代理
zuul:routes:###定义转发服务规则(随便起名)meiszl-member:###以/api-member/访问转发到会员服务path: /api-member/**###服务别名 zuul网关默认整合ribbon 自动实现负载均衡轮训效果serviceId: APP-MEISZL-MEMBERmeiszl-order:###以/api-order/访问转发到订单服务path: /api-order/**###订单服务别名serviceId: TESTFEIGN
ribbon:###指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间。ReadTimeout: 5000###指的是建立连接后从服务器读取到可用资源所用的时间。ConnectTimeout: 5000

ZuulServiceMain

@SpringBootApplication
@EnableDiscoveryClient
@EnableZuulProxy
public class ZuulServiceMain {//@EnableZuulProxy开启网关服务public static void main(String[] args){SpringApplication.run(ZuulServiceMain.class,args);}
}

ZuulFilter

package com.meiszl.filter;import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
import org.apache.commons.lang.StringUtils;
import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;
import org.springframework.stereotype.Component;import javax.servlet.http.HttpServletRequest;@Component
public class TokenFilter extends ZuulFilter {//网关的过滤器如何编写//过滤类型 pre 表示在请求之前进行执行@Overridepublic String filterType() {/*** pre:路由之前* routing:路由之时* post: 路由之后* error:发送错误调用*/return FilterConstants.PRE_TYPE;}//过滤器执行顺序,当一个请求在同一个阶段存在多个过滤器的时候,多个过滤器执行顺序。@Overridepublic int filterOrder() {return 0;}//判断过滤器是否生效@Overridepublic boolean shouldFilter() {return true;}//编写过滤器拦截业务逻辑代码@Overridepublic Object run() throws ZuulException {//案例:拦截所有的服务接口,判断服务接口上是否有传递userToken参数。//1.获取上下文RequestContext currentContext = RequestContext.getCurrentContext();//2.获取Request对象HttpServletRequest request = currentContext.getRequest();//3.获取token的时候从请求头中获取String userToken = request.getParameter("userToken");if (StringUtils.isEmpty(userToken)){//不会继续执行....不会去调用服务接口,网关服务直接响应给客户端currentContext.setSendZuulResponse(false);currentContext.setResponseBody("userToken is null");currentContext.setResponseStatusCode(401);return null;}//正常执行调用其他服务接口...return null;}
}

Zuul网关拦截器配置相关推荐

  1. sping拦截器配置顺序影响事务正常运行

    为什么80%的码农都做不了架构师?>>>    拦截器配置顺序影响事务正常运行,以下是可以正常运行的 order的值越大就越靠近被代理的方法; <!-- 事务配置 --> ...

  2. springboot 添加拦截器之后中文乱码_spring boot 2.x 添加拦截器配置未生效的问题

    背景: 今天有一个需求需要拦截除登录相关请求以外的所有请求,并查看request 中是否包含指定的信息,而自然就想到了使用拦截器就可以轻松实现 编写拦截器,获取请求头信息中的test,并打印出来 @C ...

  3. Spring mvc 拦截器 配置心得

    session超过时间自动跳转到登录页面.要求请求的每个url都要进行拦截,当然,js,css这些东西除外. spring-mvc.xml Xml代码   <!-- 拦截器配置 --> & ...

  4. SpringBoot拦截器配置

    SpringBoot拦截器配置 自定义拦截器: com.example.mybatis2018.interceptor.MyInterCeptor package com.example.mybati ...

  5. Spring拦截器配置详解(如何定义一个拦截器)

    一.前言 Spring和SpringBoot的拦截器也是对请求进行的系列验证或处理,关于拦截器和过滤器的区别此文不做介绍,之前我看到过一篇相关系列的文章,讲述的还比较详细,给大家参考参考:拦截器与过滤 ...

  6. vue 请求拦截器配置

    按如下步骤进行 1.request.js内容:http request请求拦截器和http response服务器响应拦截器配置 请求拦截器有一个Authorization认证,判断登录状态之后再决定 ...

  7. zuul 之拦截器深入浅出

    文章目录 Zuul Filter工作原理 Filter拦截器概述 流程图介绍 Inbound Filters [入口拦截] EndPoint Filters [终点拦截] Outbound Filte ...

  8. SpringCloud 之 Zuul 网关搭建及配置

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:Anakki blog.csdn.net/qq_29 ...

  9. properties 配置回车_非常全面的讲解SpringCloud中Zuul网关原理及其配置,看它就够了!...

    本文同步Java知音社区,专注于Java 作者:kosamino http://www.cnblogs.com/jing99/p/11696192.html Zuul是spring cloud中的微服 ...

最新文章

  1. [USACO07JAN]平衡的阵容Balanced Lineup BZOJ 1699
  2. JAVA中List的几个方法
  3. webbench源码解析
  4. python如何读取数据保存为新格式_Python Numpy中数据的常用保存与读取方法
  5. 使用FgSegNet进行前景图像分割
  6. 在c语言中如何屏蔽一段程序,如何在用C语言关闭TCP程序中的Nagle算法
  7. 小猿圈WEB前端之HTML5+CSS3面试题(一)
  8. 丹麦为NSA开绿灯 通过通信中心监控欧洲政客
  9. .net core websocket
  10. ffmpeg推流 av_dict_set 参数设置解析(降低延时、处理花屏、改善画面质量)(实时更新)
  11. EasyRecovery---U盘数据恢复技巧
  12. PSX 610G 使用说明书
  13. u盘中毒后文件夹被病毒隐藏
  14. Web Polygraph (WebAxe-4) 测试反向代理缓存服务器
  15. 科学计算机怎么计算e的指数,关于e的公式换算(e的指数运算公式大全)
  16. 饿饿,饭饭「每日一题」
  17. 逆向爬虫08 并发异步编程
  18. photon 服务器操作系统,PhotonServer游戏服务器端教程
  19. PyTorch 2.0 重磅发布:一行代码提速 30%
  20. 搭建个人博客(论坛)的建议

热门文章

  1. 分库分表:如何解决数据量大读写缓慢
  2. 贵州小县城出身的“网约车品牌”,如何拓县出省、走向全国?
  3. 输入字体之间的间隔突然变大了
  4. 利用Qt制作QQ的登录及主界面
  5. linux nvcc未找到命令,NVCC CUDA编译流程
  6. 如何检测文章被搜索引擎收录(如何让搜索引擎收录网站)
  7. 当你同事工作出色时,如何得体地告知他上司
  8. Git各种报错和解决方案(Windows用户)
  9. java如何虚拟ip_Linux建立虚拟ip的方法
  10. shell kill 掉指定app