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

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