情况如下:

zuul配置的自定义过滤器,对所有由zuul进行路由转发的请求进行安全验证,如果请求中包含auth,则成功路由,否则失败。

代码如下:

package com.swapping.springcloud.ms.gateway.filter;

import com.alibaba.fastjson.JSON;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
import com.swapping.springcloud.ms.core.response.UniVerResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; /**
* >>>>>zuul的filter过滤器的生命周期有一下四个:
*
* PRE: 这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调试信息等。
* ROUTING:这种过滤器将请求路由到微服务。这种过滤器用于构建发送给微服务的请求,并使用Apache HttpClient或Netfilx Ribbon请求微服务。
* POST:这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添加标准的HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端等。
* ERROR:在其他阶段发生错误时执行该过滤器。 除了默认的过滤器类型,Zuul还允许我们创建自定义的过滤器类型。例如,我们可以定制一种STATIC类型的过滤器,直接在Zuul中生成响应,而不将请求转发到后端的微服务。
*
*
* Zuul中默认实现了很多Filter,也可以自己自定义过滤器
*
* 下面是自己自定义过滤器
* 实际使用中我们可以结合shiro、oauth2.0等技术去做鉴权、验证
*
*/
@Component
public class AuthFilter extends ZuulFilter{ @Override
public String filterType() {
return "pre";//可以在请求被路由之前调用
} @Override
public int filterOrder() {
return 0;//filter执行顺序,通过数字指定 ,优先级为0,数字越大,优先级越低
} @Override
public boolean shouldFilter() {
return true;// 是否执行该过滤器,此处为true,说明需要过滤
} /**
* filter需要执行的具体操作
*
* 例如:本filter实际执行的逻辑 是验证所有的访问请求中,是否包含安全信息auth
* @return
* @throws ZuulException
*/
@Override
public Object run() throws ZuulException { RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest(); String auth = request.getParameter("auth");
System.out.println("zuul拦截--请求前验证---auth:"+auth); //成功的情况
if (StringUtils.isNotBlank(auth)){
ctx.setSendZuulResponse(true); //对请求进行路由
ctx.setResponseStatusCode(200);
ctx.set("isSuccess", true);
}else {
//失败的情况
UniVerResponse res = new UniVerResponse();
res.beFalse3("zuul拦截--请求前验证---没有auth登录验证",UniVerResponse.ERROR_BUSINESS); ctx.setSendZuulResponse(false); //不对请求进行路由
ctx.setResponseStatusCode(res.getCode());//设置返回状态码
ctx.setResponseBody(JSON.toJSONString(res));//设置返回响应体
ctx.set("isSuccess", false);
ctx.getResponse().setContentType("application/json;charset=UTF-8");//设置返回响应体格式,可能会乱码 } return null;
} }

通用响应体的beFalse3()什么也没做,就是初始化了一个对象【所以,不用考虑这个问题】

然后,启动了网关服务和相对应的服务之后,开始在postMan调用接口地址:

http://localhost:8001/v1/ms-member/member/showMember

然后【这里是不带auth的请求情况】:

WTF?

这是什么鬼?

网上的解决方法如下:

第一步:

首先验证本请求在浏览器上直接访问的效果

【如果无响应,则确定是代码的问题】【如果响应,说明代码没有问题,而是postMan的问题】

而这次,浏览器访问结果如下:

说明代码的写法没有问题!!!

第二步:

修改postMan的setting,关闭SSL安全验证

然而访问后,依旧是这个结果,未解决问题!!

第三步:

关闭代理设置

依旧没能解决!

第四步:

可以尝试关闭防火墙,然后再访问【我这里依旧没有解决】

最终依旧未能找到这个问题的解决方案。在这里记录一哈,对于未能帮助到的同学们说声抱歉,如果您有解决方案,希望留言告知!!!!谢谢

========================

另外,这里附录一个问题的解决方法,可能会帮到大家

大家在测试接口时候,可能会加上token验证,时候,如果出现Could not get any response这个问题的话,有可能是

【你在粘贴token时末尾有换行符,就会导致你的问题。将变量对应的值末尾空格及换行符全部删除即可】

【postman】postman访问zuul路由网关,发生Could not get any response 的情况的更多相关文章

  1. SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理

    前言 在上篇中介绍了SpringCloud Zuul路由网关的基本使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由 ...

  2. 【七】zuul路由网关

    一.zuul是什么?zuul 包含以下两个最主要的功能:1.路由功能: 负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础.2.过滤器功能: 则负责对请求的处理过程进行干预,是实现请 ...

  3. SpringCloud 进阶之Zuul(路由网关)

    1. Zuul(路由网关) Zuul 包含了对请求的路由和过滤两个最主要的功能; 路由功能:负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础; 过滤功能:负责对请求的处理过程进行干 ...

  4. spring cloud 2.x版本 Zuul路由网关教程

    前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka ...

  5. SpringCloud的入门学习之概念理解、Zuul路由网关

    1.Zuul路由网关是什么? 答:Zuul包含了对请求的路由和过滤两个最主要的功能,其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进 ...

  6. SpringCloud学习笔记(八):Zuul路由网关

    概述 是什么? Zuul包含了对请求的路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请 ...

  7. SpringCloud与微服务Ⅸ --- Zuul路由网关

    一.Zool是什么 Zuul包含了对请求路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现 ...

  8. zuul路由网关集成ssl,实现http到https的转变

    1 前言 最近几天刚开始接触微信小程序的开发,才接触到了https的概念(微信小程序中的请求必须为https请求,不然请求无法成功).https算是对http的安全封装,在http的基础上加了ssl证 ...

  9. 【spring cloud】spring cloud zuul 路由网关

    GitHub源码地址:https://github.com/AngelSXD/springcloud 版本介绍: <properties> <project.build.source ...

随机推荐

  1. Linux学习笔记:rm删除文件和文件夹

    使用rm命令删除一个文件或者目录 使用rmdir可以删除空文件夹 参数: -i:删除前逐一询问确认 -f:即使原档案属性设为唯读,亦直接删除,无需逐一确认 -r:递归 删除文件可以直接使用rm命令,若 ...

  2. Android仿苹果版QQ下拉刷新实现(一) ——打造简单平滑的通用下拉刷新控件

    前言: 忙完了结婚乐APP的开发,终于可以花一定的时间放在博客上了.好了,废话不多说,今天我们要带来的效果是苹果版本的QQ下拉刷新.首先看一下目标效果以及demo效果:      因为此效果实现的步骤 ...

  3. php安装amqp扩展

    1.要安装AMQP PHP扩展,必须先安装librabbitmq库 1.1使用以下步骤下载并安装库: # 下载 git clone git://github.com/alanxz/rabbitmq-c ...

  4. CCF201712真题

    试题编号: 201712-1 试题名称: 最小差值 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值 ...

  5. 2款适合HTML做音频和视频的插件

    Flowplayer-视频播放器 Flowplayer 是一个开源(GPL 3的)WEB视频播放器.您可以将该播放器嵌入您的网页中,如果您是开发人员,您还可以自由定制和配置播放器相关参数以达到您要的播 ...

  6. 【LOJ】#2446. 「NOI2011」 NOI 嘉年华

    题解 一道神奇的dp 我们发现关于两个东西的记录很难办,但是我们发现在固定时间区间内,如果A场地举办的活动数是一定的,那么B场地肯定举办的活动越多越好 我们预处理一个\(num[i][j]\)表示时间 ...

  7. R语言实战(十)处理缺失数据的高级方法

    本文对应<R语言实战>第15章:处理缺失数据的高级方法 本文仅在书的基础上进行简单阐述,更加详细的缺失数据问题研究将会单独写一篇文章. 处理缺失值的一般步骤: 识别缺失数据: 检查导致数据 ...

  8. 二、django rest_framework源码之认证流程剖析

    1 绪言 上一篇中讲了django rest_framework总体流程,整个流程中最关键的一步就是执行dispatch方法.在dispatch方法中,在调用了一个initial方法,所有的认证.权限 ...

  9. SD卡分区查看(u-boot下)

    可以在U-Boot的命令行中通过命令查看MMC的信息,如: U-Boot# mmc list OMAP SD/MMC: 0 OMAP SD/MMC: 1 列出mmc设备 U-Boot# mmc dev ...

  10. windows下nodejs+npm+bower+git+bootstrap组件环境配置

    1.进入nodejs官方网站下载软件(nodejs.org), 2.下载完成后,双击默认安装.安装程序会自动添加环境变量 3.检测nodejs是否安装成功.打开cmd命令行 输入 node - v 显 ...