diff options
author | Aleksandr <ognelisar@gmail.com> | 2018-04-10 11:26:44 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-10 11:26:44 +0700 |
commit | 0231e921d110fe27ba8d51809620e7962a9eb867 (patch) | |
tree | 3533ce548006a836e947e77aa9890d2da666c2fa | |
parent | 1f49149ba768ac86263d11cb18e7a365b0bb0210 (diff) | |
parent | d396c3b6b510c3ed77c17c64df3e58af4146b9a4 (diff) | |
download | driver-core-0231e921d110fe27ba8d51809620e7962a9eb867.tar.gz driver-core-0231e921d110fe27ba8d51809620e7962a9eb867.tar.bz2 driver-core-0231e921d110fe27ba8d51809620e7962a9eb867.zip |
Merge pull request #145 from drivergroup/TM-1431v1.8.17
TM-1431 Fingerprints from PDSUI-2346 should be extracted to the context and saved in the *_history tables
-rw-r--r-- | src/main/scala/xyz/driver/core/rest/package.scala | 11 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/rest/serviceRequestContext.scala | 7 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/main/scala/xyz/driver/core/rest/package.scala b/src/main/scala/xyz/driver/core/rest/package.scala index e3c0c40..385a313 100644 --- a/src/main/scala/xyz/driver/core/rest/package.scala +++ b/src/main/scala/xyz/driver/core/rest/package.scala @@ -66,6 +66,7 @@ object `package` { val AuthenticationTokenHeader: String = "Authorization" val PermissionsTokenHeader: String = "Permissions" val AuthenticationHeaderPrefix: String = "Bearer" + val ClientFingerprintHeader: String = "X-Client-Fingerprint" val TrackingIdHeader: String = "X-Trace" val StacktraceHeader: String = "X-Stacktrace" val OriginatingIpHeader: String = "X-Forwarded-For" @@ -90,12 +91,12 @@ object `package` { "Content-Length", "Accept", "X-Trace", - "X-Client-Fingerprint", "Access-Control-Allow-Methods", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Server", "Date", + ContextHeaders.ClientFingerprintHeader, ContextHeaders.TrackingIdHeader, ContextHeaders.TraceHeaderName, ContextHeaders.SpanHeaderName, @@ -155,6 +156,12 @@ object `package` { .fold(java.util.UUID.randomUUID.toString)(_.value()) } + def extractFingerprintHash(request: HttpRequest): Option[String] = { + request.headers + .find(_.name === ContextHeaders.ClientFingerprintHeader) + .map(_.value()) + } + def extractOriginatingIP(request: HttpRequest, remoteAddress: RemoteAddress): Option[InetAddress] = { request.headers .find(_.name === ContextHeaders.OriginatingIpHeader) @@ -170,7 +177,7 @@ object `package` { h.name === ContextHeaders.AuthenticationTokenHeader || h.name === ContextHeaders.TrackingIdHeader || h.name === ContextHeaders.PermissionsTokenHeader || h.name === ContextHeaders.StacktraceHeader || h.name === ContextHeaders.TraceHeaderName || h.name === ContextHeaders.SpanHeaderName || - h.name === ContextHeaders.OriginatingIpHeader + h.name === ContextHeaders.OriginatingIpHeader || h.name === ContextHeaders.ClientFingerprintHeader } map { header => if (header.name === ContextHeaders.AuthenticationTokenHeader) { header.name -> header.value.stripPrefix(ContextHeaders.AuthenticationHeaderPrefix).trim diff --git a/src/main/scala/xyz/driver/core/rest/serviceRequestContext.scala b/src/main/scala/xyz/driver/core/rest/serviceRequestContext.scala index 5282956..775106e 100644 --- a/src/main/scala/xyz/driver/core/rest/serviceRequestContext.scala +++ b/src/main/scala/xyz/driver/core/rest/serviceRequestContext.scala @@ -34,11 +34,14 @@ class ServiceRequestContext( ) override def hashCode(): Int = - Seq[Any](trackingId, originatingIp, contextHeaders).foldLeft(31)((result, obj) => 31 * result + obj.hashCode()) + Seq[Any](trackingId, originatingIp, contextHeaders) + .foldLeft(31)((result, obj) => 31 * result + obj.hashCode()) override def equals(obj: Any): Boolean = obj match { case ctx: ServiceRequestContext => - trackingId === ctx.trackingId && originatingIp == originatingIp && contextHeaders === ctx.contextHeaders + trackingId === ctx.trackingId && + originatingIp == originatingIp && + contextHeaders === ctx.contextHeaders case _ => false } |