<?php
namespace AsusBuyNow\Middleware;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Psr\Log\LoggerInterface;
class CorsMiddleware implements EventSubscriberInterface
{
private const ASUS_ALLOWED_ORIGINS = [
"https://invoices.hashtages.eu",
"https://www.asus.com",
"https://odinview.asus.com",
"https://rogmars.asus.com",
"https://rog.asus.com"
];
private $logger;
public function __construct(
LoggerInterface $logger
) {
$this->logger = $logger;
}
public static function getSubscribedEvents(): array
{
return [
KernelEvents::RESPONSE => ['onResponse', -20],
];
}
public function onResponse(ResponseEvent $event): void
{
// Add CORS headers to the response
$response = $event->getResponse();
$origin = $event->getRequest()->headers->get('Origin');
if(in_array($origin, self::ASUS_ALLOWED_ORIGINS)) {
$response->headers->set('Access-Control-Allow-Origin', $origin);
$response->headers->set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
$response->headers->set('Access-Control-Allow-Headers', 'Content-Type');
}
}
}