Ajout CORS

This commit is contained in:
François Pelletier 2024-08-31 23:27:03 -04:00
parent b7635a1ac0
commit 0789487841
5 changed files with 65 additions and 15 deletions

View file

@ -0,0 +1,34 @@
package actions
import javax.inject.Inject
import play.api.mvc._
import play.api.http.HttpErrorHandler
import play.filters.cors.{CORSActionBuilder, CORSConfig}
import scala.concurrent.{ExecutionContext, Future}
import org.apache.pekko.stream.Materializer
class CORSAction @Inject() (
parser: BodyParsers.Default,
corsConfig: CORSConfig,
errorHandler: HttpErrorHandler,
val controllerComponents: ControllerComponents
)(implicit ec: ExecutionContext, mat: Materializer)
extends CORSActionBuilder
with BaseController {
override protected def corsConfig: CORSConfig = corsConfig
override protected def errorHandler: HttpErrorHandler = errorHandler
override protected def mat: Materializer = mat
override def parser: BodyParser[AnyContent] = parser
override def executionContext: ExecutionContext = ec
override def invokeBlock[A](request: Request[A], block: Request[A] => Future[Result]): Future[Result] = {
block(request).map(_.withHeaders(
"Access-Control-Allow-Origin" -> "*",
"Access-Control-Allow-Methods" -> "GET, POST, OPTIONS",
"Access-Control-Allow-Headers" -> "Origin, Content-Type, Accept, Authorization",
"Access-Control-Allow-Credentials" -> "true"
))
}
}