Your IP : 216.73.216.97


Current Path : /var/www/clients/client3/web2/web/vendor/magento/module-csp/Model/Collector/
Upload File :
Current File : /var/www/clients/client3/web2/web/vendor/magento/module-csp/Model/Collector/ControllerCollector.php

<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
declare(strict_types=1);

namespace Magento\Csp\Model\Collector;

use Magento\Csp\Api\CspAwareActionInterface;
use Magento\Csp\Api\PolicyCollectorInterface;

/**
 * Asks for route-specific policies from a compatible controller.
 */
class ControllerCollector implements PolicyCollectorInterface
{
    /**
     * @var CspAwareActionInterface|null
     */
    private $controller;

    /**
     * Set the action interface that is responsible for processing current HTTP request.
     *
     * @param CspAwareActionInterface $cspAwareAction
     * @return void
     */
    public function setCurrentActionInstance(CspAwareActionInterface $cspAwareAction): void
    {
        $this->controller = $cspAwareAction;
    }

    /**
     * @inheritDoc
     */
    public function collect(array $defaultPolicies = []): array
    {
        if ($this->controller) {
            return $this->controller->modifyCsp($defaultPolicies);
        }

        return $defaultPolicies;
    }
}