Setting headers for Gateway instead of replacing them; fixes gh-1141
This commit is contained in:
@@ -15,8 +15,6 @@
|
||||
*/
|
||||
package org.springframework.cloud.sleuth.instrument.web.client;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import brave.Span;
|
||||
import brave.Tracer;
|
||||
import brave.http.HttpClientHandler;
|
||||
@@ -110,8 +108,7 @@ abstract class AbstractHttpHeadersFilter implements HttpHeadersFilter {
|
||||
private static final Propagation.Setter<ServerHttpRequest.Builder, String> SETTER = new Propagation.Setter<ServerHttpRequest.Builder, String>() {
|
||||
@Override
|
||||
public void put(ServerHttpRequest.Builder carrier, String key, String value) {
|
||||
carrier.headers(httpHeaders -> httpHeaders.replace(key,
|
||||
Collections.singletonList(value)));
|
||||
carrier.headers(httpHeaders -> httpHeaders.set(key, value));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -25,7 +25,7 @@ public class TraceRequestHttpHeadersFilterTests {
|
||||
HttpTracing httpTracing = HttpTracing.newBuilder(this.tracing).build();
|
||||
|
||||
@Test
|
||||
public void should_override_any_tracing_headers() {
|
||||
public void should_override_span_tracing_headers() {
|
||||
HttpHeadersFilter filter = TraceRequestHttpHeadersFilter.create(this.httpTracing);
|
||||
HttpHeaders httpHeaders = new HttpHeaders();
|
||||
httpHeaders.set("X-B3-TraceId", "52f112af7472aff0");
|
||||
@@ -46,4 +46,22 @@ public class TraceRequestHttpHeadersFilterTests {
|
||||
.isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void should_set_tracing_headers() {
|
||||
HttpHeadersFilter filter = TraceRequestHttpHeadersFilter.create(this.httpTracing);
|
||||
HttpHeaders httpHeaders = new HttpHeaders();
|
||||
MockServerHttpRequest request = MockServerHttpRequest.post("foo/bar")
|
||||
.headers(httpHeaders).build();
|
||||
MockServerWebExchange exchange = MockServerWebExchange.builder(request).build();
|
||||
|
||||
HttpHeaders filteredHeaders = filter.filter(httpHeaders, exchange);
|
||||
|
||||
BDDAssertions.then(filteredHeaders.get("X-B3-TraceId")).isNotEmpty();
|
||||
BDDAssertions.then(filteredHeaders.get("X-B3-SpanId")).isNotEmpty();
|
||||
BDDAssertions
|
||||
.then((Object) exchange
|
||||
.getAttribute(TraceRequestHttpHeadersFilter.SPAN_ATTRIBUTE))
|
||||
.isNotNull();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user