aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlad <vlad@driver.xyz>2017-03-24 19:09:04 -0700
committervlad <vlad@driver.xyz>2017-03-24 19:09:04 -0700
commit74e32a5693e309425a7643ca9f22b6bda62ae6a2 (patch)
tree77267574bd772afd37f039c3a934275618eaf066
parentdcceb9aae8073617f43335c83647af5ccf8685ef (diff)
downloaddriver-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.scala9
-rw-r--r--src/test/scala/xyz/driver/core/AuthTest.scala16
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))))