aboutsummaryrefslogtreecommitdiff
path: root/src
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 /src
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.
Diffstat (limited to 'src')
-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)
}
}