我有一个使用 Zuul 的应用程序,托管在 AWS 上的 Kubernetes 集群中。看起来 Zuul 没有将标头从请求转发到目的地,所以我必须这样做:
private void copyRequestHeaders() {
RequestContext context = RequestContext.getCurrentContext();
Enumeration<String> headerNames = context.getRequest().getHeaderNames();
while(headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
context.addZuulRequestHeader(headerName, context.getRequest().getHeader(headerName));
}
}
我猜我不应该这样做,并且我在某处或类似的地方缺少配置选项。谁能对此有所了解。有趣的是,该应用程序在我的本地开发环境中运行良好。
我还想知道 ZuulRequestHeader 和 ZuulResponseHeadera 的用途,以及它们与标准请求和响应标头的区别。也许是包装纸?
谢谢
尝试在配置中添加sensitiveHeaders
。
zuul:
routes:
sample:
sensitiveHeaders:
path: /sample
删除sensitiveHeaders
上的任何值意味着在 Zuul 网关上传递的所有标头都将在微服务中深入传递。
有关详细信息,请参阅此文档。
默认情况下,Zuul API 网关不会允许将敏感信息转发到下游微服务。此属性的默认值为
zuul.sensitiveHeaders: Cookie,Set-Cookie,Authorization
我们可以覆盖此值以允许某些标头
zuul.sensitiveHeaders: Cookie,Set-Cookie
为了允许所有标题,我们可以将其保留为空白
zuul.sensitiveHeaders: