vendor/shopware/core/Framework/Api/EventListener/ResponseHeaderListener.php line 28

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Framework\Api\EventListener;
  3. use Shopware\Core\PlatformRequest;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  6. use Symfony\Component\HttpKernel\KernelEvents;
  7. /**
  8.  * @deprecated tag:v6.5.0 - reason:becomes-internal - EventSubscribers will become internal in v6.5.0
  9.  */
  10. class ResponseHeaderListener implements EventSubscriberInterface
  11. {
  12.     private const HEADERS = [
  13.         PlatformRequest::HEADER_VERSION_ID,
  14.         PlatformRequest::HEADER_LANGUAGE_ID,
  15.         PlatformRequest::HEADER_CONTEXT_TOKEN,
  16.     ];
  17.     public static function getSubscribedEvents(): array
  18.     {
  19.         return [
  20.             KernelEvents::RESPONSE => 'onResponse',
  21.         ];
  22.     }
  23.     public function onResponse(ResponseEvent $event): void
  24.     {
  25.         $headersBag $event->getResponse()->headers;
  26.         foreach (self::HEADERS as $header) {
  27.             if ($headersBag->has($header) || !$event->getRequest()->headers->has($header)) {
  28.                 continue;
  29.             }
  30.             $headersBag->set(
  31.                 $header,
  32.                 $event->getRequest()->headers->get($header),
  33.                 false
  34.             );
  35.         }
  36.         if (!$headersBag->has(PlatformRequest::HEADER_FRAME_OPTIONS)) {
  37.             $headersBag->set(
  38.                 PlatformRequest::HEADER_FRAME_OPTIONS,
  39.                 'deny',
  40.                 false
  41.             );
  42.         }
  43.     }
  44. }