aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlad <vlad@driver.xyz>2017-02-22 18:52:54 -0800
committervlad <vlad@driver.xyz>2017-02-22 18:52:54 -0800
commitd5fd8f858dfc8e21dbe8ee365e5d9017090812e7 (patch)
treec6b59c444e68dba2901b5ccd0e07a180b609ecd1
parent3c9b0ed55e3721595dafa273b015dec6add8c18b (diff)
downloaddriver-core-d5fd8f858dfc8e21dbe8ee365e5d9017090812e7.tar.gz
driver-core-d5fd8f858dfc8e21dbe8ee365e5d9017090812e7.tar.bz2
driver-core-d5fd8f858dfc8e21dbe8ee365e5d9017090812e7.zip
More logging for authorization
-rw-r--r--src/main/scala/xyz/driver/core/app.scala8
-rw-r--r--src/main/scala/xyz/driver/core/rest.scala4
-rw-r--r--src/test/scala/xyz/driver/core/AuthTest.scala2
3 files changed, 14 insertions, 0 deletions
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)))
}
}
diff --git a/src/test/scala/xyz/driver/core/AuthTest.scala b/src/test/scala/xyz/driver/core/AuthTest.scala
index 9045832..c6df168 100644
--- a/src/test/scala/xyz/driver/core/AuthTest.scala
+++ b/src/test/scala/xyz/driver/core/AuthTest.scala
@@ -8,6 +8,7 @@ import akka.http.scaladsl.testkit.ScalatestRouteTest
import org.scalatest.mock.MockitoSugar
import org.scalatest.{FlatSpec, Matchers}
import xyz.driver.core.auth._
+import xyz.driver.core.logging.NoLogger
import xyz.driver.core.rest.{AuthProvider, Authorization, ServiceRequestContext}
import scala.concurrent.Future
@@ -23,6 +24,7 @@ class AuthTest extends FlatSpec with Matchers with MockitoSugar with ScalatestRo
val authStatusService: AuthProvider[User] = new AuthProvider[User] {
override implicit val execution = scala.concurrent.ExecutionContext.global
+ override val log = NoLogger
override protected val authorization: Authorization = new Authorization {
override def userHasPermission(user: User, permission: Permission)(