aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSatya Boora <sboora@users.noreply.github.com>2018-04-30 15:14:33 -0700
committerGitHub <noreply@github.com>2018-04-30 15:14:33 -0700
commit95dcc32a590ceb3b40371e2ef611a22afda5c499 (patch)
tree8812769d613f80ee73f197562626ed809d4019b2
parenta81bc870179aabcb9f223f3ce8432f500cdc2c04 (diff)
downloaddriver-core-95dcc32a590ceb3b40371e2ef611a22afda5c499.tar.gz
driver-core-95dcc32a590ceb3b40371e2ef611a22afda5c499.tar.bz2
driver-core-95dcc32a590ceb3b40371e2ef611a22afda5c499.zip
Complete the request with a 401 status code to avoid WWW-authenticate header issue (#160)v1.8.25
-rw-r--r--src/main/scala/xyz/driver/core/rest/DriverRoute.scala12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/main/scala/xyz/driver/core/rest/DriverRoute.scala b/src/main/scala/xyz/driver/core/rest/DriverRoute.scala
index c23c44d..538d918 100644
--- a/src/main/scala/xyz/driver/core/rest/DriverRoute.scala
+++ b/src/main/scala/xyz/driver/core/rest/DriverRoute.scala
@@ -19,7 +19,8 @@ trait DriverRoute {
def route: Route
def routeWithDefaults: Route = {
- (defaultResponseHeaders & handleExceptions(ExceptionHandler(exceptionHandler))) {
+ (defaultResponseHeaders & handleExceptions(ExceptionHandler(exceptionHandler)) & handleRejections(
+ authenticationRejectionHandler)) {
route
}
}
@@ -97,4 +98,13 @@ trait DriverRoute {
protected def errorResponse[T <: Exception](statusCode: StatusCode, message: String, exception: T): Route = {
complete(HttpResponse(statusCode, entity = message))
}
+
+ protected def authenticationRejectionHandler: RejectionHandler =
+ RejectionHandler
+ .newBuilder()
+ .handle {
+ case AuthenticationFailedRejection(_, challenge) =>
+ complete(HttpResponse(StatusCodes.Unauthorized, entity = challenge.realm))
+ }
+ .result()
}