-1

i have a route which needs an access token in its header to grant access to it for that i have this working code

def accessProtectedResource: server.Route =
    path("access-protected-resource") {
      get {
        bearerToken { token =>
          token match {
            case Some(tokenValue) =>
              complete(OK, routeResponseMessage.getResponse(OK.intValue,ServerMessages.AUTH_PASS,JsObject.empty))
            case None => reject(AuthorizationFailedRejection)
          }
        }
      }
    }

  private def bearerToken: Directive1[Option[String]] =
    for {
      authBearerHeader <- optionalHeaderValueByType(classOf[Authorization]).map(extractBearerToken)
      xAuthCookie <- optionalCookie("X-Authorization-Token").map(_.map(_.value))
    } yield authBearerHeader.orElse(xAuthCookie)


  private def extractBearerToken(authHeader: Option[Authorization]): Option[String] =
    authHeader.collect {
      case Authorization(OAuth2BearerToken(token)) => token
    }

when i hit the route through postman in the Authorization tab i selected the type to Bearer Token and add the token and send the request and everything works fine now i want to unit test this route for this i am looking at this

but i am confused how can i add the header in a proper way in my unit test here is my code

"pass route /access-protected-resource" in {
    routeResponseMessage.getResponse(OK.intValue, ServerMessages.AUTH_PASS, JsObject.empty)

val originHeader = Authorization(OAuth2BearerToken("accessTokenString"))
  
    Get("http://0.0.0.0:8083/get-user-token") ~> originHeader ~> authenticationController.route ~> check {

   
   
    }

  }

but my route is getting rejected

- pass route /access-protected-resource *** FAILED ***
[info]   Request was rejected with rejection MethodRejection(HttpMethod(POST)) (CheckValidUserTokenExistsTest.scala:76)

how to do this correctly ?

swaheed
  • 3,671
  • 10
  • 42
  • 103

1 Answers1

0

How about using addCredential and testing only bearerToken method wrapped with Route.seal like this(https://github.com/ItoYo16u/scala-usage-playground/blob/master/src/test/scala/web/akka/JWTDirectivesSpec.scala)?

110416
  • 16
  • 2