in hmac/play/play_2-9/src/main/scala/com/gu/pandahmac/HmacAuthActions.scala [23:40]
private def authByKeyOrPanda[A](request: Request[A], block: RequestHandler[A], useApiAuth: Boolean): Future[Result] = {
val oHmac: Option[String] = request.headers.get(HMACHeaderNames.hmacKey)
val oDate: Option[String] = request.headers.get(HMACHeaderNames.dateKey)
val oServiceName: Option[String] = request.headers.get(HMACHeaderNames.serviceNameKey)
val uri = new URI(request.uri)
(oHmac, oDate) match {
case (Some(hmac), Some(date)) => {
if (validateHMACHeaders(date, hmac, uri)) {
val user = User(oServiceName.getOrElse("hmac-authed-service"), "", "", None)
block(new UserRequest(user, request))
} else {
Future.successful(Unauthorized)
}
}
case _ => if(useApiAuth) apiAuthByPanda(request, block) else authByPanda(request, block)
}
}