diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/resources/reference.conf | 17 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/rest/DriverRoute.scala | 17 |
2 files changed, 30 insertions, 4 deletions
diff --git a/src/main/resources/reference.conf b/src/main/resources/reference.conf index 238ac68..f903234 100644 --- a/src/main/resources/reference.conf +++ b/src/main/resources/reference.conf @@ -2,7 +2,7 @@ # Default settings for driver core. Any settings defined by users of # # this library will take precedence. See the documentation of the # # Typesafe Config Library (https://github.com/lightbend/config) for # -# more information. # +# more information. # ###################################################################### # This scope is for general settings related to the execution of a @@ -13,7 +13,20 @@ application { cors { allowedMethods: ["GET", "PUT", "POST", "PATCH", "DELETE", "OPTIONS"] - allowedOrigins: [] + allowedOrigins: [ + { + scheme: http + hostSuffix: localhost + }, + { + scheme: https + hostSuffix: driver.xyz + }, + { + scheme: https + hostSuffix: driver.network + } + ] } } diff --git a/src/main/scala/xyz/driver/core/rest/DriverRoute.scala b/src/main/scala/xyz/driver/core/rest/DriverRoute.scala index 1fe5e3f..5e629be 100644 --- a/src/main/scala/xyz/driver/core/rest/DriverRoute.scala +++ b/src/main/scala/xyz/driver/core/rest/DriverRoute.scala @@ -6,7 +6,7 @@ import akka.http.scaladsl.model._ import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.model.headers._ import akka.http.scaladsl.server.Directives._ -import akka.http.scaladsl.server.{Directive0, ExceptionHandler, RequestContext, Route} +import akka.http.scaladsl.server._ import com.typesafe.config.Config import com.typesafe.scalalogging.Logger import org.slf4j.MDC @@ -22,7 +22,7 @@ trait DriverRoute { def route: Route def routeWithDefaults: Route = { - (defaultResponseHeaders & handleExceptions(ExceptionHandler(exceptionHandler))) { + (defaultResponseHeaders & handleRejections(rejectionHandler) & handleExceptions(ExceptionHandler(exceptionHandler))) { route ~ defaultOptionsRoute } } @@ -84,6 +84,19 @@ trait DriverRoute { } } + protected def rejectionHandler: RejectionHandler = + RejectionHandler + .newBuilder() + .handle { + case rejection => + respondWithAllCorsHeaders { + RejectionHandler + .default(scala.collection.immutable.Seq(rejection)) + .getOrElse(complete("OK")) + } + } + .result() + /** * Override me for custom exception handling * |