From d5fd8f858dfc8e21dbe8ee365e5d9017090812e7 Mon Sep 17 00:00:00 2001 From: vlad Date: Wed, 22 Feb 2017 18:52:54 -0800 Subject: More logging for authorization --- src/main/scala/xyz/driver/core/app.scala | 8 ++++++++ src/main/scala/xyz/driver/core/rest.scala | 4 ++++ 2 files changed, 12 insertions(+) (limited to 'src/main') diff --git a/src/main/scala/xyz/driver/core/app.scala b/src/main/scala/xyz/driver/core/app.scala index 5482b3b..68c7cf0 100644 --- a/src/main/scala/xyz/driver/core/app.scala +++ b/src/main/scala/xyz/driver/core/app.scala @@ -1,5 +1,7 @@ package xyz.driver.core +import java.sql.SQLException + import akka.actor.ActorSystem import akka.http.scaladsl.Http import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport @@ -102,6 +104,12 @@ object app { complete( HttpResponse(Conflict, entity = "Resource was changed concurrently, try requesting a newer version"))(ctx) + case sex: SQLException => + ctx => + val trackingId = rest.extractTrackingId(ctx) + log.audit(s"Database exception for the resource ${ctx.request.uri} ($trackingId)", sex) + complete(HttpResponse(InternalServerError, entity = "Data access error"))(ctx) + case t: Throwable => ctx => val trackingId = rest.extractTrackingId(ctx) diff --git a/src/main/scala/xyz/driver/core/rest.scala b/src/main/scala/xyz/driver/core/rest.scala index 5e77ecd..da6df96 100644 --- a/src/main/scala/xyz/driver/core/rest.scala +++ b/src/main/scala/xyz/driver/core/rest.scala @@ -87,6 +87,7 @@ object rest { protected implicit val execution: ExecutionContext protected val authorization: Authorization + protected val log: Logger /** * Specific implementation on how to extract user from request context, @@ -113,13 +114,16 @@ object rest { else { val challenge = HttpChallenges.basic(s"User does not have the required permissions: ${permissions.mkString(", ")}") + log.error(s"User $user does not have the required permissions: ${permissions.mkString(", ")}") reject(AuthenticationFailedRejection(CredentialsRejected, challenge)) } case Success(None) => + log.error(s"Wasn't able to find authenticated user for the token provided to verify ${permissions.mkString(", ")}") reject(ValidationRejection(s"Wasn't able to find authenticated user for the token provided")) case Failure(t) => + log.error(s"Wasn't able to verify token for authenticated user to verify ${permissions.mkString(", ")}", t) reject(ValidationRejection(s"Wasn't able to verify token for authenticated user", Some(t))) } } -- cgit v1.2.3