aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlad <vlad@driver.xyz>2017-05-17 20:09:29 -0700
committervlad <vlad@driver.xyz>2017-05-17 20:09:29 -0700
commit3d2e8eb57e074e51da53d8c239c63b4ce7e5a820 (patch)
tree2f5091bdcd4ab57c6a5022298c62ad911a96dc2b
parent8f83659c4b1211b35e5dd599ab42c18c33c075f0 (diff)
downloaddriver-core-3d2e8eb57e074e51da53d8c239c63b4ce7e5a820.tar.gz
driver-core-3d2e8eb57e074e51da53d8c239c63b4ce7e5a820.tar.bz2
driver-core-3d2e8eb57e074e51da53d8c239c63b4ce7e5a820.zip
Adding more values to MDC to identify service callerv0.12.6
-rw-r--r--src/main/scala/xyz/driver/core/app.scala11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/app.scala b/src/main/scala/xyz/driver/core/app.scala
index f7731e3..e35c300 100644
--- a/src/main/scala/xyz/driver/core/app.scala
+++ b/src/main/scala/xyz/driver/core/app.scala
@@ -26,6 +26,8 @@ import xyz.driver.core.time.provider.{SystemTimeProvider, TimeProvider}
import scala.compat.Platform.ConcurrentModificationException
import scala.concurrent.duration._
import scala.concurrent.{Await, ExecutionContext, Future}
+import scalaz.Scalaz.stringInstance
+import scalaz.syntax.equal._
object app {
@@ -59,6 +61,9 @@ object app {
}
}
+ private def extractHeader(request: HttpRequest)(headerName: String): Option[String] =
+ request.headers.find(_.name().toLowerCase === headerName).map(_.value())
+
protected def bindHttp(modules: Seq[Module]): Unit = {
val serviceTypes = modules.flatMap(_.routeTypes)
val swaggerService = new Swagger(baseUrl, Scheme.forValue(scheme), version, actorSystem, serviceTypes, config)
@@ -74,6 +79,12 @@ object app {
val trackingId = rest.extractTrackingId(ctx.request)
MDC.put("trackingId", trackingId)
MDC.put("origin", origin)
+ MDC.put("xForwardedFor",
+ extractHeader(ctx.request)("x-forwarded-for")
+ .orElse(extractHeader(ctx.request)("x_forwarded_for"))
+ .getOrElse("unknown"))
+ MDC.put("remoteAddress", extractHeader(ctx.request)("remote-address").getOrElse("unknown"))
+ MDC.put("userAgent", extractHeader(ctx.request)("user-agent").getOrElse("unknown"))
MDC.put("ip", ip.toOption.map(_.getHostAddress).getOrElse("unknown"))
def requestLogging: Future[Unit] = Future {