Zuul网关拦截器配置
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网关拦截器配置相关推荐
- sping拦截器配置顺序影响事务正常运行
为什么80%的码农都做不了架构师?>>> 拦截器配置顺序影响事务正常运行,以下是可以正常运行的 order的值越大就越靠近被代理的方法; <!-- 事务配置 --> ...
- springboot 添加拦截器之后中文乱码_spring boot 2.x 添加拦截器配置未生效的问题
背景: 今天有一个需求需要拦截除登录相关请求以外的所有请求,并查看request 中是否包含指定的信息,而自然就想到了使用拦截器就可以轻松实现 编写拦截器,获取请求头信息中的test,并打印出来 @C ...
- Spring mvc 拦截器 配置心得
session超过时间自动跳转到登录页面.要求请求的每个url都要进行拦截,当然,js,css这些东西除外. spring-mvc.xml Xml代码 <!-- 拦截器配置 --> & ...
- SpringBoot拦截器配置
SpringBoot拦截器配置 自定义拦截器: com.example.mybatis2018.interceptor.MyInterCeptor package com.example.mybati ...
- Spring拦截器配置详解(如何定义一个拦截器)
一.前言 Spring和SpringBoot的拦截器也是对请求进行的系列验证或处理,关于拦截器和过滤器的区别此文不做介绍,之前我看到过一篇相关系列的文章,讲述的还比较详细,给大家参考参考:拦截器与过滤 ...
- vue 请求拦截器配置
按如下步骤进行 1.request.js内容:http request请求拦截器和http response服务器响应拦截器配置 请求拦截器有一个Authorization认证,判断登录状态之后再决定 ...
- zuul 之拦截器深入浅出
文章目录 Zuul Filter工作原理 Filter拦截器概述 流程图介绍 Inbound Filters [入口拦截] EndPoint Filters [终点拦截] Outbound Filte ...
- SpringCloud 之 Zuul 网关搭建及配置
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:Anakki blog.csdn.net/qq_29 ...
- properties 配置回车_非常全面的讲解SpringCloud中Zuul网关原理及其配置,看它就够了!...
本文同步Java知音社区,专注于Java 作者:kosamino http://www.cnblogs.com/jing99/p/11696192.html Zuul是spring cloud中的微服 ...
最新文章
- [USACO07JAN]平衡的阵容Balanced Lineup BZOJ 1699
- JAVA中List的几个方法
- webbench源码解析
- python如何读取数据保存为新格式_Python Numpy中数据的常用保存与读取方法
- 使用FgSegNet进行前景图像分割
- 在c语言中如何屏蔽一段程序,如何在用C语言关闭TCP程序中的Nagle算法
- 小猿圈WEB前端之HTML5+CSS3面试题(一)
- 丹麦为NSA开绿灯 通过通信中心监控欧洲政客
- .net core websocket
- ffmpeg推流 av_dict_set 参数设置解析(降低延时、处理花屏、改善画面质量)(实时更新)
- EasyRecovery---U盘数据恢复技巧
- PSX 610G 使用说明书
- u盘中毒后文件夹被病毒隐藏
- Web Polygraph (WebAxe-4) 测试反向代理缓存服务器
- 科学计算机怎么计算e的指数,关于e的公式换算(e的指数运算公式大全)
- 饿饿,饭饭「每日一题」
- 逆向爬虫08 并发异步编程
- photon 服务器操作系统,PhotonServer游戏服务器端教程
- PyTorch 2.0 重磅发布:一行代码提速 30%
- 搭建个人博客(论坛)的建议