ajout CORS

This commit is contained in:
François Pelletier 2024-09-08 21:03:41 -04:00
parent f7abfc4902
commit d896049932
5 changed files with 68 additions and 20 deletions

View file

@ -0,0 +1,35 @@
package actions
import org.apache.pekko.stream.Materializer
import play.api.http.HttpErrorHandler
import play.api.mvc._
import play.filters.cors.{CORSActionBuilder, CORSConfig}
import javax.inject.Inject
import scala.concurrent.{ExecutionContext, Future}
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"
))
}
}