spring-boot - Spring Cloud Zuul 网关无法在响应中添加自定义标头
问题描述
我正在尝试使用后过滤器向 Zuul 网关上的 HTTP 响应添加自定义标头:
@Component
public class ResponseFilter extends ZuulFilter {
private static final Logger logger = LoggerFactory.getLogger(ResponseFilter.class);
@Override
public String filterType() {
return "post";
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
Object correlationId = ctx.get(FilterUtils.CORRELATION_ID);
if (correlationId != null) {
logger.info("Adding the correlation id to the outbound headers: {}", correlationId);
ctx.getResponse().addHeader(FilterUtils.CORRELATION_ID, correlationId.toString());
// ctx.addZuulResponseHeader(FilterUtils.CORRELATION_ID, correlationId.toString());
}
logger.info("Completing outgoing request for {}", ctx.getRequest().getRequestURI());
return null;
}
}
application.properties
文件:
zuul.prefix=/api
ribbon.eureka.enabled=false
spring.cloud.loadbalancer.ribbon.enabled=false
zuul.ignoredHeaders=
zuul.sensitiveHeaders=
的相关部分pom.xml
:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-kubernetes-ribbon</artifactId>
<version>1.1.7.RELEASE</version>
</dependency>
<dependencies>
网关部署在 Openshift 3.11 上
我遇到的问题是my-correlation-id
Zuul 忽略了自定义标头(没有出现在响应标头中)。
我究竟做错了什么?
解决方案
推荐阅读
- ios - 从 SCNView 录制视频的最快方法
- linux - 如何使用另一个命令 linux 命令处理来自管道的数据
- php - 匿名类,访问扩展类的私有属性
- java - Spring FeignClient 回退未调用但进入异常
- visual-studio - 错误:“名称为‘UnityEditor.StandardEvents’的程序集已经存在(Packages/com.unity.standardevents/Editor/Editor.asmdef)”
- lua - LUA 中的命令行格式
- javascript - 从 promise.js 接收错误 - 使用 Javascript 和 html2canvas 在 IE11 中克隆 HTML 对象
- python - Pyspark - 使用累加器检查 Json 格式
- android - Firebase 图像加载缓慢
- javascript - 正则表达式 - 前缀 + 输入值