【发布时间】:2020-09-15 03:23:36
【问题描述】:
我使用 Spring Boot。我正在处理一个缺陷。当我们通过 Zuul 端点调用帐户服务时,它会给出 400 错误请求。独立的帐户服务按预期工作。唯一的问题似乎是当呼叫由/通过 Zuul 端点路由时。现在我正在调试这个。
我在 localhost 端口 8032 上启动了帐户服务,并添加了调试点,并在我通过 POSTMAN 中的本地主机调用时验证了它是否有效。所以这照常工作。然后我去了Zuul,并在应用程序属性中提供了zuul.routes.account.url=http://localhost:8032。我在本地主机上的不同端口上启动了 Zuul。因此,当我通过 POSTMAN 中的本地主机调用 Zuul 时,我希望调用转到在端口 8032 上运行的帐户服务,并希望达到我设置的调试点。但它根本不会发生。我收到 400 个错误请求。
当我在 Zuul 应用程序属性中更改为 zuul.routes.account.url=http://localhost:8050 并通过邮递员调用 Zuul 时,它给我一个错误,说没有应用程序在端口 8050 上运行意味着我为 zuul.routes.account.url 设置的值正在按预期设置(8050端口没有部署任何东西,我在8032端口有账户服务)。当我通过 POSTMAN 调用 Zuul localhost 时,我似乎无法弄清楚为什么我没有在部署在 8032 端口上的帐户服务中达到调试点。
【问题讨论】:
-
你是否传递了任何标题?
-
是的,我正在传递标头授权。看来通话正在进行中。
-
您需要告诉 zuul 让授权标头通过,因为它默认将其删除。 cloud.spring.io/spring-cloud-static/spring-cloud-netflix/…
-
@spencergibb 感谢您的回复。如果默认情况下会删除标题,我会感到印象深刻,那么帐户服务可能会出错。我没有得到 401 未授权,我得到 400 错误请求。即使发生同样的事情。我的问题不是我收到 400 个错误请求。它没有达到我设定的终点,那是我被困住了。我正在阅读您发送的文章
-
@spencergibb 我把它留空了
zuul.routes.cx.sensitiveHeaders=,我仍然得到相同的结果,没有达到调试点。
标签: java spring-boot spring-cloud netflix-zuul