From 14ece0965f077da5c03ca4e8d3ff54083b1412dc Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Tue, 4 Sep 2018 15:18:29 -0700 Subject: Replace traceparent header, rather than setting all headers The bug manifested itself by missing authentication headers, as these were cleared when the child trace header was set. --- src/main/scala/xyz/driver/core/init/HttpApi.scala | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/scala/xyz/driver/core/init/HttpApi.scala b/src/main/scala/xyz/driver/core/init/HttpApi.scala index 6330fbe..81428bf 100644 --- a/src/main/scala/xyz/driver/core/init/HttpApi.scala +++ b/src/main/scala/xyz/driver/core/init/HttpApi.scala @@ -75,8 +75,12 @@ trait HttpApi extends CloudServices with Directives with SprayJsonSupport { self } reporter .traceWithOptionalParentAsync(s"http_handle_rpc", tags, parent) { spanContext => - val header = Traceparent(spanContext) - val withHeader = ctx.withRequest(ctx.request.withHeaders(header)) + val header = Traceparent(spanContext) + val withHeader = ctx.withRequest( + ctx.request + .removeHeader(header.name) + .addHeader(header) + ) inner(withHeader) } } -- cgit v1.2.3