![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-csp/Model/Collector/CspWhitelistXml/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Csp\Model\Collector\CspWhitelistXml; use Magento\Framework\Config\ConverterInterface; /** * Converts csp_whitelist.xml files' content into config data. */ class Converter implements ConverterInterface { /** * @inheritDoc */ public function convert($source) { $policyConfig = []; /** @var \DOMNodeList $policies */ $policies = $source->getElementsByTagName('policy'); /** @var \DOMElement $policy */ foreach ($policies as $policy) { if ($policy->nodeType != XML_ELEMENT_NODE) { continue; } $id = $policy->attributes->getNamedItem('id')->nodeValue; if (!array_key_exists($id, $policyConfig)) { $policyConfig[$id] = ['hosts' => [], 'hashes' => []]; } /** @var \DOMElement $value */ foreach ($policy->getElementsByTagName('value') as $value) { if ($value->attributes->getNamedItem('type')->nodeValue === 'host') { $policyConfig[$id]['hosts'][$value->attributes->getNamedItem('id')->nodeValue] = $value->nodeValue; } else { $policyConfig[$id]['hashes'][$value->nodeValue] = $value->attributes->getNamedItem('algorithm')->nodeValue; } } } return $policyConfig; } }