Spring Cloud Zuul无法转发cookie。

13

我遇到了一个Spring Cloud Zuul代理的问题。我已经配置和运行了两个微服务,并在我的Web浏览器中有一个 cookie。我正在使用Zuul作为API网关,当我调用后端时,Zuul没有将我的cookie转发到后端。看起来Zuul忽略了发送的cookie,因此我的后端无法检索它。

您能否帮助我解决这个问题?我正在使用Spring Cloud Brixton.RELEASE和Spring Boot 1.3.5。

谢谢。

4个回答

13

谢谢回复,让我试试你的建议。 - Erikson Murrugarra
1
请查看ZuulProperties类。有两种方法可以配置敏感标头,一种是全局配置,另一种是为每个路由配置。默认情况下包括Set-Cookie和Cookie。要启用它们,您需要使用其他内容覆盖它们。例如: zuul.sensitiveHeaders:Authorization - qza
我阅读了上面的文档,但那些文档并没有明确说明如何“覆盖”默认设置。我并没有自动假设,如果我为sensitiveHeaders指定了一个新值,那么默认值(Cookie、Set-Cookie、Authorization)将被取消设置。然而,我可以确认将该值设置为其他值确实会完全取消默认设置。感谢@qza的有用提示。 - Privateer

2

默认的Zuul敏感头信息允许不转发这些数据,包括:

sensitiveHeaders=Cookie,Set-Cookie,Authorization

为了能够转发cookies,您可以在bootstrap.properties文件中添加以下内容:

sensitiveHeaders=

或者如果您不需要授权头

sensitiveHeaders=Authorization

1
在application.yml中添加敏感标头,如下所示:-
routes:
service:
  path: /service/**
  sensitiveHeaders: Cookie,Set-Cookie
  url: http://localhost:9001

-3

我已经解决了这个问题,只需要使用简单的 HTTP 头在 cookie 中传递发送的数据即可。


1
使用HTTP Only Headers(例如cookies)来实现此操作,将允许客户端欺骗安全检查或修改服务器端cookie数据。 - Kieveli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接