aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jakob@driver.xyz>2018-09-04 15:18:29 -0700
committerJakob Odersky <jakob@driver.xyz>2018-09-12 14:17:39 -0700
commit14ece0965f077da5c03ca4e8d3ff54083b1412dc (patch)
tree856ff065c0a84fd57a74ae758b5cdc94ec26b568
parentc0f2c67d1ff04d32c4a08897d1adbf22d27ed115 (diff)
downloaddriver-core-14ece0965f077da5c03ca4e8d3ff54083b1412dc.tar.gz
driver-core-14ece0965f077da5c03ca4e8d3ff54083b1412dc.tar.bz2
driver-core-14ece0965f077da5c03ca4e8d3ff54083b1412dc.zip
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.
-rw-r--r--src/main/scala/xyz/driver/core/init/HttpApi.scala8
1 files 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)
}
}