diff --git a/backend-services/feed-service/app/models/actions/AuthenticationFilter.scala b/backend-services/feed-service/app/models/actions/AuthenticationFilter.scala index 3e8ed31a8ec563c9ef2f0289a256368eb48fa8e2..8b7b752ae310c539ac8beaaddeb1db6f38ba1074 100644 --- a/backend-services/feed-service/app/models/actions/AuthenticationFilter.scala +++ b/backend-services/feed-service/app/models/actions/AuthenticationFilter.scala @@ -21,7 +21,7 @@ class AuthenticationFilter @Inject() (implicit val executionContext: ExecutionCo * @return An optional Forbidden Result with which to abort the request. */ override def filter[A](request: AuthenticationRequest[A]): Future[Option[Result]] = Future.successful { - if (!request.userId.isDefined) + if (!request.requesterId.isDefined) Some(Results.Forbidden("Invalid JWT Token")) else None diff --git a/backend-services/feed-service/app/models/actions/AuthenticationRequest.scala b/backend-services/feed-service/app/models/actions/AuthenticationRequest.scala index 3bd5452fa5586e0ea05ffe235f3d50fc38297540..6573cd1596c44d8778c4bdf9ceae0c4389d8a42b 100644 --- a/backend-services/feed-service/app/models/actions/AuthenticationRequest.scala +++ b/backend-services/feed-service/app/models/actions/AuthenticationRequest.scala @@ -14,7 +14,8 @@ import play.api.libs.json.Json import javax.inject.Inject -class AuthenticationRequest[A](val userId: Option[ObjectId], request: Request[A]) extends WrappedRequest[A](request) +class AuthenticationRequest[A](val jwt: String, val requesterId: Option[ObjectId], request: Request[A]) + extends WrappedRequest[A](request) /** @@ -29,9 +30,8 @@ class AuthenticationTransformer @Inject() (implicit val executionContext: Execut * @return The new parameter to pass to the Action block. */ override def transform[A](request: Request[A]) = Future.successful { - println(request) - val userId: Option[ObjectId] = processJWT(request) - new AuthenticationRequest(userId, request) + val (jwt: String, requesterId: Option[ObjectId]) = processJWT(request) + new AuthenticationRequest(jwt, requesterId, request) } /** @@ -40,7 +40,7 @@ class AuthenticationTransformer @Inject() (implicit val executionContext: Execut * @param request The incoming request. * @return The user ID specified in the JWT's payload. */ - def processJWT[A](request: Request[A]): Option[ObjectId] = { + def processJWT[A](request: Request[A]): (String, Option[ObjectId]) = { val privateKey = ConfigFactory.load().getString("jwt.privateKey") try { @@ -52,14 +52,14 @@ class AuthenticationTransformer @Inject() (implicit val executionContext: Execut val content = payload.get.content val jsonContent = Json.parse(content) - val userId = (jsonContent \ "userId").as[String] + val requesterId = (jsonContent \ "userId").as[String] - Some(new ObjectId(userId)) + (token, Some(new ObjectId(requesterId))) } catch { case ex: Throwable => { println(s"JWT Error: $ex") - None + ("", None) } } }