diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/scala/xyz/driver/core/app.scala (renamed from src/main/scala/com/drivergrp/core/app.scala) | 74 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/auth.scala (renamed from src/main/scala/com/drivergrp/core/auth.scala) | 18 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/config.scala (renamed from src/main/scala/com/drivergrp/core/config.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/core.scala (renamed from src/main/scala/com/drivergrp/core/core.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/crypto.scala (renamed from src/main/scala/com/drivergrp/core/crypto.scala) | 4 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/database.scala (renamed from src/main/scala/com/drivergrp/core/database.scala) | 4 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/file.scala (renamed from src/main/scala/com/drivergrp/core/file.scala) | 16 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/generators.scala (renamed from src/main/scala/com/drivergrp/core/generators.scala) | 6 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/json.scala (renamed from src/main/scala/com/drivergrp/core/json.scala) | 7 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/logging.scala (renamed from src/main/scala/com/drivergrp/core/logging.scala) | 4 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/messages.scala (renamed from src/main/scala/com/drivergrp/core/messages.scala) | 4 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/rest.scala (renamed from src/main/scala/com/drivergrp/core/rest.scala) | 14 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/stats.scala (renamed from src/main/scala/com/drivergrp/core/stats.scala) | 6 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/time.scala (renamed from src/main/scala/com/drivergrp/core/time.scala) | 2 |
14 files changed, 83 insertions, 80 deletions
diff --git a/src/main/scala/com/drivergrp/core/app.scala b/src/main/scala/xyz/driver/core/app.scala index f6100f0..e080e1b 100644 --- a/src/main/scala/com/drivergrp/core/app.scala +++ b/src/main/scala/xyz/driver/core/app.scala @@ -1,4 +1,4 @@ -package com.drivergrp.core +package xyz.driver.core import akka.actor.ActorSystem import akka.http.scaladsl.Http @@ -9,14 +9,15 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.RouteResult._ import akka.http.scaladsl.server.{ExceptionHandler, Route, RouteConcatenation} import akka.stream.ActorMaterializer -import com.drivergrp.core.logging.{Logger, TypesafeScalaLogger} -import com.drivergrp.core.rest.Swagger -import com.drivergrp.core.stats.SystemStats -import com.drivergrp.core.time.Time -import com.drivergrp.core.time.provider.{SystemTimeProvider, TimeProvider} import com.typesafe.config.Config import org.slf4j.LoggerFactory import spray.json.DefaultJsonProtocol +import xyz.driver.core +import xyz.driver.core.logging.{Logger, TypesafeScalaLogger} +import xyz.driver.core.rest.Swagger +import xyz.driver.core.stats.SystemStats +import xyz.driver.core.time.Time +import xyz.driver.core.time.provider.{SystemTimeProvider, TimeProvider} import scala.compat.Platform.ConcurrentModificationException import scala.concurrent.duration._ @@ -29,8 +30,8 @@ object app { modules: Seq[Module], time: TimeProvider = new SystemTimeProvider(), log: Logger = new TypesafeScalaLogger( - com.typesafe.scalalogging.Logger(LoggerFactory.getLogger(classOf[DriverApp]))), - config: Config = com.drivergrp.core.config.loadDefaultConfig, + com.typesafe.scalalogging.Logger(LoggerFactory.getLogger(classOf[DriverApp]))), + config: Config = core.config.loadDefaultConfig, interface: String = "::0", baseUrl: String = "localhost:8080", port: Int = 8080) { @@ -71,8 +72,8 @@ object app { log.debug(s"Request is not allowed to $uri ($requestUuid)", is) complete( - HttpResponse(BadRequest, - entity = s"""{ "requestUuid": "$requestUuid", "message": "${is.getMessage}" }""")) + HttpResponse(BadRequest, + entity = s"""{ "requestUuid": "$requestUuid", "message": "${is.getMessage}" }""")) } case cm: ConcurrentModificationException => @@ -82,8 +83,7 @@ object app { log.debug(s"Concurrent modification of the resource $uri ($requestUuid)", cm) complete( - HttpResponse(Conflict, - entity = s"""{ "requestUuid": "$requestUuid", "message": "${cm.getMessage}" }""")) + HttpResponse(Conflict, entity = s"""{ "requestUuid": "$requestUuid", "message": "${cm.getMessage}" }""")) } case t: Throwable => @@ -93,8 +93,8 @@ object app { log.error(s"Request to $uri could not be handled normally ($requestUuid)", t) complete( - HttpResponse(InternalServerError, - entity = s"""{ "requestUuid": "$requestUuid", "message": "${t.getMessage}" }""")) + HttpResponse(InternalServerError, + entity = s"""{ "requestUuid": "$requestUuid", "message": "${t.getMessage}" }""")) } } @@ -112,14 +112,14 @@ object app { path("version") { val currentTime = time.currentTime().millis complete( - Map( - "version" -> version, - "gitHash" -> gitHash, - "modules" -> modules.map(_.name).mkString(", "), - "startupTime" -> startupTime.millis.toString, - "serverTime" -> currentTime.toString, - "uptime" -> (currentTime - startupTime.millis).toString - )) + Map( + "version" -> version, + "gitHash" -> gitHash, + "modules" -> modules.map(_.name).mkString(", "), + "startupTime" -> startupTime.millis.toString, + "serverTime" -> currentTime.toString, + "uptime" -> (currentTime - startupTime.millis).toString + )) } } @@ -133,25 +133,25 @@ object app { path("health") { complete( - Map( - "availableProcessors" -> SystemStats.availableProcessors.toJson, - "memoryUsage" -> Map( - "free" -> memoryUsage.free.toJson, - "total" -> memoryUsage.total.toJson, - "max" -> memoryUsage.max.toJson - ).toJson, - "gcStats" -> Map( - "garbageCollectionTime" -> gcStats.garbageCollectionTime.toJson, - "totalGarbageCollections" -> gcStats.totalGarbageCollections.toJson - ).toJson, - "fileSystemSpace" -> SystemStats.fileSystemSpace.map { f => + Map( + "availableProcessors" -> SystemStats.availableProcessors.toJson, + "memoryUsage" -> Map( + "free" -> memoryUsage.free.toJson, + "total" -> memoryUsage.total.toJson, + "max" -> memoryUsage.max.toJson + ).toJson, + "gcStats" -> Map( + "garbageCollectionTime" -> gcStats.garbageCollectionTime.toJson, + "totalGarbageCollections" -> gcStats.totalGarbageCollections.toJson + ).toJson, + "fileSystemSpace" -> SystemStats.fileSystemSpace.map { f => Map("path" -> f.path.toJson, "freeSpace" -> f.freeSpace.toJson, "totalSpace" -> f.totalSpace.toJson, "usableSpace" -> f.usableSpace.toJson) }.toJson, - "operatingSystem" -> SystemStats.operatingSystemStats.toJson - )) + "operatingSystem" -> SystemStats.operatingSystemStats.toJson + )) } } @@ -206,7 +206,7 @@ object app { } class EmptyModule extends Module { - val name = "Nothing" + val name = "Nothing" def route: Route = complete(StatusCodes.OK) def routeTypes = Seq.empty[Type] } diff --git a/src/main/scala/com/drivergrp/core/auth.scala b/src/main/scala/xyz/driver/core/auth.scala index e857ef0..874f1e1 100644 --- a/src/main/scala/com/drivergrp/core/auth.scala +++ b/src/main/scala/xyz/driver/core/auth.scala @@ -1,4 +1,4 @@ -package com.drivergrp.core +package xyz.driver.core import akka.http.scaladsl.model.headers.HttpChallenges import akka.http.scaladsl.server.AuthenticationFailedRejection.CredentialsRejected @@ -87,21 +87,22 @@ object auth { protected def authStatus(authToken: AuthToken): OptionT[Future, U] - def authorize(permission: Permission): Directive1[(AuthToken, U)] = { + def authorize(permissions: Permission*): Directive1[(AuthToken, U)] = { parameters('authToken.?).flatMap { parameterTokenValue => optionalHeaderValueByName(AuthService.AuthenticationTokenHeader).flatMap { headerTokenValue => - verifyAuthToken(headerTokenValue.orElse(parameterTokenValue), permission) + verifyAuthToken(headerTokenValue.orElse(parameterTokenValue), permissions.toSet) } } } - private def verifyAuthToken(tokenOption: Option[String], permission: Permission): Directive1[(AuthToken, U)] = + private def verifyAuthToken(tokenOption: Option[String], + permissions: Set[Permission]): Directive1[(AuthToken, U)] = tokenOption match { case Some(tokenValue) => val token = AuthToken(Base64[Macaroon](tokenValue)) onComplete(authStatus(token).run).flatMap { tokenUserResult => - checkPermissions(tokenUserResult, permission, token) + checkPermissions(tokenUserResult, permissions, token) } case None => @@ -109,13 +110,14 @@ object auth { } private def checkPermissions(userResult: Try[Option[U]], - permission: Permission, + permissions: Set[Permission], token: AuthToken): Directive1[(AuthToken, U)] = { userResult match { case Success(Some(user)) => - if (user.roles.exists(_.hasPermission(permission))) provide(token -> user) + if (permissions.forall(user.permissions.contains)) provide(token -> user) else { - val challenge = HttpChallenges.basic(s"User does not have the required permission $permission") + val challenge = + HttpChallenges.basic(s"User does not have the required permissions: ${permissions.mkString(", ")}") reject(AuthenticationFailedRejection(CredentialsRejected, challenge)) } diff --git a/src/main/scala/com/drivergrp/core/config.scala b/src/main/scala/xyz/driver/core/config.scala index 29cd9ed..112986e 100644 --- a/src/main/scala/com/drivergrp/core/config.scala +++ b/src/main/scala/xyz/driver/core/config.scala @@ -1,4 +1,4 @@ -package com.drivergrp.core +package xyz.driver.core import java.io.File import com.typesafe.config.{Config, ConfigFactory} diff --git a/src/main/scala/com/drivergrp/core/core.scala b/src/main/scala/xyz/driver/core/core.scala index 158447f..b7fbeb6 100644 --- a/src/main/scala/com/drivergrp/core/core.scala +++ b/src/main/scala/xyz/driver/core/core.scala @@ -1,4 +1,4 @@ -package com.drivergrp +package xyz.driver import scalaz.Equal diff --git a/src/main/scala/com/drivergrp/core/crypto.scala b/src/main/scala/xyz/driver/core/crypto.scala index 5f63eb9..d001e0f 100644 --- a/src/main/scala/com/drivergrp/core/crypto.scala +++ b/src/main/scala/xyz/driver/core/crypto.scala @@ -1,6 +1,6 @@ -package com.drivergrp.core +package xyz.driver.core -import com.drivergrp.core.auth.AuthToken +import xyz.driver.core.auth.AuthToken object crypto { diff --git a/src/main/scala/com/drivergrp/core/database.scala b/src/main/scala/xyz/driver/core/database.scala index 581c5de..1039be4 100644 --- a/src/main/scala/com/drivergrp/core/database.scala +++ b/src/main/scala/xyz/driver/core/database.scala @@ -1,6 +1,6 @@ -package com.drivergrp.core +package xyz.driver.core -import com.drivergrp.core.time.Time +import xyz.driver.core.time.Time import scala.concurrent.Future import slick.backend.DatabaseConfig diff --git a/src/main/scala/com/drivergrp/core/file.scala b/src/main/scala/xyz/driver/core/file.scala index 20bd36e..93715d0 100644 --- a/src/main/scala/com/drivergrp/core/file.scala +++ b/src/main/scala/xyz/driver/core/file.scala @@ -1,4 +1,4 @@ -package com.drivergrp.core +package xyz.driver.core import java.io.File import java.nio.file.{Path, Paths} @@ -6,8 +6,8 @@ import java.util.UUID._ import com.amazonaws.services.s3.AmazonS3 import com.amazonaws.services.s3.model.{Bucket, GetObjectRequest, ListObjectsV2Request} -import com.drivergrp.core.revision.Revision -import com.drivergrp.core.time.Time +import xyz.driver.core.revision.Revision +import xyz.driver.core.time.Time import scala.concurrent.{ExecutionContext, Future} import scalaz.{ListT, OptionT} @@ -15,10 +15,10 @@ import scalaz.{ListT, OptionT} object file { final case class FileLink( - name: Name[File], - location: Path, - revision: Revision[File], - lastModificationDate: Time + name: Name[File], + location: Path, + revision: Revision[File], + lastModificationDate: Time ) trait FileService { @@ -114,7 +114,7 @@ object file { if (localSource.renameTo(destinationFile)) () else { throw new Exception( - s"Failed to move file from `${localSource.getCanonicalPath}` to `${destinationFile.getCanonicalPath}`") + s"Failed to move file from `${localSource.getCanonicalPath}` to `${destinationFile.getCanonicalPath}`") } } else { throw new Exception(s"Failed to create parent directories for file `${destinationFile.getCanonicalPath}`") diff --git a/src/main/scala/com/drivergrp/core/generators.scala b/src/main/scala/xyz/driver/core/generators.scala index 10df7db..bb026a9 100644 --- a/src/main/scala/com/drivergrp/core/generators.scala +++ b/src/main/scala/xyz/driver/core/generators.scala @@ -1,9 +1,9 @@ -package com.drivergrp.core +package xyz.driver.core import java.math.MathContext -import com.drivergrp.core.revision.Revision -import com.drivergrp.core.time.{Time, TimeRange} +import xyz.driver.core.revision.Revision +import xyz.driver.core.time.{Time, TimeRange} import scala.reflect.ClassTag import scala.util.Random diff --git a/src/main/scala/com/drivergrp/core/json.scala b/src/main/scala/xyz/driver/core/json.scala index 9a30161..51679c3 100644 --- a/src/main/scala/com/drivergrp/core/json.scala +++ b/src/main/scala/xyz/driver/core/json.scala @@ -1,12 +1,13 @@ -package com.drivergrp.core +package xyz.driver.core import akka.http.scaladsl.model.Uri.Path import akka.http.scaladsl.server.PathMatcher.Matched import akka.http.scaladsl.server.{PathMatcher, _} import akka.http.scaladsl.unmarshalling.Unmarshaller -import com.drivergrp.core.revision.Revision -import com.drivergrp.core.time.Time +import xyz.driver.core.revision.Revision +import xyz.driver.core.time.Time import spray.json.{DeserializationException, JsNumber, _} +import xyz.driver.core.time.Time import scala.reflect.runtime.universe._ diff --git a/src/main/scala/com/drivergrp/core/logging.scala b/src/main/scala/xyz/driver/core/logging.scala index 2c8c670..599c824 100644 --- a/src/main/scala/com/drivergrp/core/logging.scala +++ b/src/main/scala/xyz/driver/core/logging.scala @@ -1,4 +1,4 @@ -package com.drivergrp.core +package xyz.driver.core import java.text.SimpleDateFormat import java.util.Date @@ -168,7 +168,7 @@ object logging { private def logContext(message: StringBuilder, loggingEvent: ILoggingEvent) = { Option(loggingEvent.getMDCPropertyMap).map(_.asScala).filter(_.nonEmpty).foreach { context => message.append( - context map { case (key, value) => s"$key$FieldSeparator$value" } mkString ("Context: ", " ", newline) + context map { case (key, value) => s"$key$FieldSeparator$value" } mkString ("Context: ", " ", newline) ) } } diff --git a/src/main/scala/com/drivergrp/core/messages.scala b/src/main/scala/xyz/driver/core/messages.scala index 3a97401..94d9889 100644 --- a/src/main/scala/com/drivergrp/core/messages.scala +++ b/src/main/scala/xyz/driver/core/messages.scala @@ -1,9 +1,9 @@ -package com.drivergrp.core +package xyz.driver.core import java.util.Locale -import com.drivergrp.core.logging.Logger import com.typesafe.config.Config +import xyz.driver.core.logging.Logger import scala.collection.JavaConverters._ diff --git a/src/main/scala/com/drivergrp/core/rest.scala b/src/main/scala/xyz/driver/core/rest.scala index d97e13e..c615d99 100644 --- a/src/main/scala/com/drivergrp/core/rest.scala +++ b/src/main/scala/xyz/driver/core/rest.scala @@ -1,4 +1,4 @@ -package com.drivergrp.core +package xyz.driver.core import akka.actor.ActorSystem import akka.http.scaladsl.Http @@ -8,15 +8,15 @@ import akka.http.scaladsl.unmarshalling.Unmarshal import akka.stream.ActorMaterializer import akka.stream.scaladsl.Flow import akka.util.ByteString -import com.drivergrp.core.auth.{AuthService, AuthToken} -import com.drivergrp.core.crypto.Crypto -import com.drivergrp.core.logging.Logger -import com.drivergrp.core.stats.Stats -import com.drivergrp.core.time.TimeRange -import com.drivergrp.core.time.provider.TimeProvider import com.github.swagger.akka.model._ import com.github.swagger.akka.{HasActorSystem, SwaggerHttpService} import com.typesafe.config.Config +import xyz.driver.core.auth.{AuthService, AuthToken} +import xyz.driver.core.crypto.Crypto +import xyz.driver.core.logging.Logger +import xyz.driver.core.stats.Stats +import xyz.driver.core.time.TimeRange +import xyz.driver.core.time.provider.TimeProvider import scala.concurrent.{ExecutionContext, Future} import scala.util.{Failure, Success} diff --git a/src/main/scala/com/drivergrp/core/stats.scala b/src/main/scala/xyz/driver/core/stats.scala index 2af4b6a..5759012 100644 --- a/src/main/scala/com/drivergrp/core/stats.scala +++ b/src/main/scala/xyz/driver/core/stats.scala @@ -1,11 +1,11 @@ -package com.drivergrp.core +package xyz.driver.core import java.io.File import java.lang.management.ManagementFactory import java.lang.reflect.Modifier -import com.drivergrp.core.logging.Logger -import com.drivergrp.core.time.{Time, TimeRange} +import xyz.driver.core.logging.Logger +import xyz.driver.core.time.{Time, TimeRange} object stats { diff --git a/src/main/scala/com/drivergrp/core/time.scala b/src/main/scala/xyz/driver/core/time.scala index 9bafb00..625d6a2 100644 --- a/src/main/scala/com/drivergrp/core/time.scala +++ b/src/main/scala/xyz/driver/core/time.scala @@ -1,4 +1,4 @@ -package com.drivergrp.core +package xyz.driver.core import java.text.SimpleDateFormat import java.util._ |