All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sbuslab.http.directives.AuthDirectives.scala Maven / Gradle / Ivy

There is a newer version: 1.2.26
Show newest version
package com.sbuslab.http.directives

import scala.concurrent.Future

import akka.http.scaladsl.model.HttpRequest
import akka.http.scaladsl.server.{Directives, Route}


trait AuthProvider[T] {
  def auth(request: HttpRequest): Future[T]
}


trait AuthDirectives extends Directives {

  protected def auth[T](f: ⇒ Route)(implicit authProvider: AuthProvider[T]): Route =
    auth { _: T ⇒ f }

  protected def auth[T](inner: T ⇒ Route)(implicit authProvider: AuthProvider[T]): Route =
    extractRequest { req ⇒
      onSuccess(authProvider.auth(req))(inner)
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy