spring-cloud/spring-cloud-gateway

ProxyExchange discards all incoming request headers when making a request with a body.

Open

#2,559 opened on Mar 16, 2022

View on GitHub
 (3 comments) (2 reactions) (0 assignees)Java (4,284 stars) (3,204 forks)batch import
bughelp wanted

Description

Affects: spring-cloud-gateway-webflux:3.1.1


Setup Define an MVC RestController that accepts a ProxyExchange as an argument to a request handler method, and use the ProxyExchange object to issue a POST request (or any request that contains a body) to an upstream service, using a body created (or manipulated) in the request handler method.

Expected Behaviour The ProxyExchange forwards the original request headers, minus filtered sensitive headers, and Content related headers in the upstream request.

Observed Behaviour The ProxyExchange discards all original incoming headers, appending only the X-Forwarded-For and X-Forwarded-Proto headers. This behaviour is in contrast to the behaviour observed when using a ProxyExchange object to make requests to upstream services that do not contain bodies (GET, OPTIONS, etc).

Contributor guide

ProxyExchange discards all incoming request headers when making a request with a body. · spring-cloud/spring-cloud-gateway#2559 | Good First Issue