Your IP : 216.73.216.220


Current Path : /home/rtorresani/www/vendor/magento/module-csp/Model/Collector/
Upload File :
Current File : //home/rtorresani/www/vendor/magento/module-csp/Model/Collector/CspWhitelistXmlCollector.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\PolicyCollectorInterface;
use Magento\Framework\Config\DataInterface as ConfigReader;
use Magento\Csp\Model\Policy\FetchPolicy;

/**
 * Collects policies defined in csp_whitelist.xml configs.
 */
class CspWhitelistXmlCollector implements PolicyCollectorInterface
{
    /**
     * @var ConfigReader
     */
    private $configReader;

    /**
     * @param ConfigReader $configReader
     */
    public function __construct(ConfigReader $configReader)
    {
        $this->configReader = $configReader;
    }

    /**
     * @inheritDoc
     */
    public function collect(array $defaultPolicies = []): array
    {
        $policies = $defaultPolicies;
        $config = $this->configReader->get(null);
        foreach ($config as $policyId => $values) {
            $policies[] = new FetchPolicy(
                $policyId,
                false,
                $values['hosts'],
                [],
                false,
                false,
                false,
                [],
                $values['hashes'],
                false,
                false
            );
        }

        return $policies;
    }
}