diff options
author | vlad <vlad@driver.xyz> | 2017-03-24 19:09:04 -0700 |
---|---|---|
committer | vlad <vlad@driver.xyz> | 2017-03-24 19:09:04 -0700 |
commit | 74e32a5693e309425a7643ca9f22b6bda62ae6a2 (patch) | |
tree | 77267574bd772afd37f039c3a934275618eaf066 | |
parent | dcceb9aae8073617f43335c83647af5ccf8685ef (diff) | |
download | driver-core-74e32a5693e309425a7643ca9f22b6bda62ae6a2.tar.gz driver-core-74e32a5693e309425a7643ca9f22b6bda62ae6a2.tar.bz2 driver-core-74e32a5693e309425a7643ca9f22b6bda62ae6a2.zip |
Auth provider simplification
-rw-r--r-- | src/main/scala/xyz/driver/core/rest.scala | 9 | ||||
-rw-r--r-- | src/test/scala/xyz/driver/core/AuthTest.scala | 16 |
2 files changed, 10 insertions, 15 deletions
diff --git a/src/main/scala/xyz/driver/core/rest.scala b/src/main/scala/xyz/driver/core/rest.scala index ebdb1b9..32ac3fa 100644 --- a/src/main/scala/xyz/driver/core/rest.scala +++ b/src/main/scala/xyz/driver/core/rest.scala @@ -80,15 +80,12 @@ object rest { } } - trait AuthProvider[U <: User] { + abstract class AuthProvider[U <: User](val authorization: Authorization, + log: Logger)(implicit execution: ExecutionContext) { import akka.http.scaladsl.server._ import Directives._ - protected implicit val execution: ExecutionContext - protected val authorization: Authorization - protected val log: Logger - /** * Specific implementation on how to extract user from request context, * can either need to do a network call to auth server or extract everything from self-contained token @@ -96,7 +93,7 @@ object rest { * @param context set of request values which can be relevant to authenticate user * @return authenticated user */ - protected def authenticatedUser(context: ServiceRequestContext): OptionT[Future, U] + def authenticatedUser(context: ServiceRequestContext): OptionT[Future, U] def authorize(permissions: Permission*): Directive1[U] = { serviceContext flatMap { ctx => diff --git a/src/test/scala/xyz/driver/core/AuthTest.scala b/src/test/scala/xyz/driver/core/AuthTest.scala index c6df168..c39d9da 100644 --- a/src/test/scala/xyz/driver/core/AuthTest.scala +++ b/src/test/scala/xyz/driver/core/AuthTest.scala @@ -21,18 +21,16 @@ class AuthTest extends FlatSpec with Matchers with MockitoSugar with ScalatestRo val TestRole = Role(Id("1"), Name("testRole")) - val authStatusService: AuthProvider[User] = new AuthProvider[User] { + implicit val exec = scala.concurrent.ExecutionContext.global - override implicit val execution = scala.concurrent.ExecutionContext.global - override val log = NoLogger - - override protected val authorization: Authorization = new Authorization { - override def userHasPermission(user: User, permission: Permission)( - implicit ctx: ServiceRequestContext): Future[Boolean] = { - Future.successful(permission === TestRoleAllowedPermission) - } + val authorization: Authorization = new Authorization { + override def userHasPermission(user: User, permission: Permission)( + implicit ctx: ServiceRequestContext): Future[Boolean] = { + Future.successful(permission === TestRoleAllowedPermission) } + } + val authStatusService = new AuthProvider[User](authorization, NoLogger) { override def authenticatedUser(context: ServiceRequestContext): OptionT[Future, User] = OptionT.optionT[Future] { if (context.contextHeaders.keySet.contains(AuthProvider.AuthenticationTokenHeader)) { Future.successful(Some(BasicUser(Id[User]("1"), Set(TestRole)))) |