diff options
author | Satya Boora <sboora@users.noreply.github.com> | 2018-04-30 15:14:33 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-30 15:14:33 -0700 |
commit | 95dcc32a590ceb3b40371e2ef611a22afda5c499 (patch) | |
tree | 8812769d613f80ee73f197562626ed809d4019b2 /src/main/scala/xyz/driver/core/rest/DriverRoute.scala | |
parent | a81bc870179aabcb9f223f3ce8432f500cdc2c04 (diff) | |
download | driver-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
Diffstat (limited to 'src/main/scala/xyz/driver/core/rest/DriverRoute.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/rest/DriverRoute.scala | 12 |
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() } |