aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/auth.scala
diff options
context:
space:
mode:
authorvlad <vlad@drivergrp.com>2016-11-02 13:59:36 -0700
committervlad <vlad@drivergrp.com>2016-11-02 13:59:36 -0700
commite3268b87bc9446e69b59ed5f3990f42c8a00d918 (patch)
tree5e6742de4bc699891dd4502ef4a0117066898c4a /src/main/scala/xyz/driver/core/auth.scala
parent16bdae27befd9cf3b723ad919ba2140b38d18c48 (diff)
downloaddriver-core-e3268b87bc9446e69b59ed5f3990f42c8a00d918.tar.gz
driver-core-e3268b87bc9446e69b59ed5f3990f42c8a00d918.tar.bz2
driver-core-e3268b87bc9446e69b59ed5f3990f42c8a00d918.zip
DIR-135 Directive for more effortless context extractionv0.9.9
Diffstat (limited to 'src/main/scala/xyz/driver/core/auth.scala')
-rw-r--r--src/main/scala/xyz/driver/core/auth.scala12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/main/scala/xyz/driver/core/auth.scala b/src/main/scala/xyz/driver/core/auth.scala
index 3dd21d9..e4d726b 100644
--- a/src/main/scala/xyz/driver/core/auth.scala
+++ b/src/main/scala/xyz/driver/core/auth.scala
@@ -2,6 +2,7 @@ package xyz.driver.core
import akka.http.scaladsl.model.headers.HttpChallenges
import akka.http.scaladsl.server.AuthenticationFailedRejection.CredentialsRejected
+import xyz.driver.core.rest.ServiceRequestContext
import scala.concurrent.Future
import scala.util.{Failure, Success}
@@ -73,7 +74,8 @@ object auth {
final case class PasswordHash(value: String)
object AuthService {
- val AuthenticationTokenHeader = "WWW-Authenticate"
+ val AuthenticationTokenHeader = rest.ContextHeaders.AuthenticationTokenHeader
+ val SetAuthenticationTokenHeader = "set-authorization"
}
trait AuthService[U <: User] {
@@ -81,13 +83,11 @@ object auth {
import akka.http.scaladsl.server._
import Directives._
- protected def authStatus(authToken: AuthToken): OptionT[Future, U]
+ protected def authStatus(context: ServiceRequestContext): OptionT[Future, U]
def authorize(permissions: Permission*): Directive1[U] = {
- headerValueByName(AuthService.AuthenticationTokenHeader).flatMap { tokenValue =>
- val token = AuthToken(tokenValue)
-
- onComplete(authStatus(token).run).flatMap {
+ rest.serviceContext flatMap { ctx =>
+ onComplete(authStatus(ctx).run).flatMap {
case Success(Some(user)) =>
if (permissions.forall(user.permissions.contains)) provide(user)
else {