aboutsummaryrefslogtreecommitdiff
path: root/kamon-spray/src
diff options
context:
space:
mode:
authorBen Spencer <dangerous.ben@gmail.com>2016-01-08 10:39:43 +0000
committerBen Spencer <dangerous.ben@gmail.com>2016-01-08 10:45:30 +0000
commit0a0c5abb94e69b14b77bf16b503bfbf8e66e0a7e (patch)
treedc731e9678180f844b953dadb4355053340011c4 /kamon-spray/src
parenta9d5c5c61f7e5e189bf67baee2b13e21ebbaaf73 (diff)
downloadKamon-0a0c5abb94e69b14b77bf16b503bfbf8e66e0a7e.tar.gz
Kamon-0a0c5abb94e69b14b77bf16b503bfbf8e66e0a7e.tar.bz2
Kamon-0a0c5abb94e69b14b77bf16b503bfbf8e66e0a7e.zip
+ spray: check for trace-token header in case-insensitive manner.
To comply with http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
Diffstat (limited to 'kamon-spray/src')
-rw-r--r--kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala2
-rw-r--r--kamon-spray/src/test/scala/kamon/spray/SprayServerTracingSpec.scala14
2 files changed, 15 insertions, 1 deletions
diff --git a/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala b/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala
index 82d3ceb1..b1bca22d 100644
--- a/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala
+++ b/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala
@@ -38,7 +38,7 @@ class ServerRequestInstrumentation {
val defaultTraceName = SprayExtension.generateTraceName(request)
val token = if (SprayExtension.settings.includeTraceTokenHeader) {
- request.headers.find(_.name == SprayExtension.settings.traceTokenHeaderName).map(_.value)
+ request.headers.find(_.name.equalsIgnoreCase(SprayExtension.settings.traceTokenHeaderName)).map(_.value)
} else None
val newContext = tracer.newContext(defaultTraceName, token)
diff --git a/kamon-spray/src/test/scala/kamon/spray/SprayServerTracingSpec.scala b/kamon-spray/src/test/scala/kamon/spray/SprayServerTracingSpec.scala
index 45a704db..7adb6e1c 100644
--- a/kamon-spray/src/test/scala/kamon/spray/SprayServerTracingSpec.scala
+++ b/kamon-spray/src/test/scala/kamon/spray/SprayServerTracingSpec.scala
@@ -69,6 +69,20 @@ class SprayServerTracingSpec extends BaseKamonSpec("spray-server-tracing-spec")
response.headers should not contain traceTokenHeader("propagation-disabled")
}
+
+ "check for the trace-token header in a case-insensitive manner" in {
+ enableAutomaticTraceTokenPropagation()
+
+ val (connection, server) = buildClientConnectionAndServer
+ val client = TestProbe()
+
+ client.send(connection, Get("/").withHeaders(RawHeader(SprayExtension.settings.traceTokenHeaderName.toLowerCase, "case-insensitive")))
+ server.expectMsgType[HttpRequest]
+ server.reply(HttpResponse(entity = "ok"))
+ val response = client.expectMsgType[HttpResponse]
+
+ response.headers should contain(traceTokenHeader("case-insensitive"))
+ }
}
def traceTokenHeader(token: String): RawHeader =