1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- /**
- * Url security information
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Url;
- class SecurityInfo implements \Magento\Framework\Url\SecurityInfoInterface
- {
- /**
- * List of secure url patterns
- *
- * @var array
- */
- protected $secureUrlsList = [];
- /**
- * List of patterns excluded form secure url list
- */
- protected $excludedUrlsList = [];
- /**
- * List of already checked urls
- *
- * @var array
- */
- protected $secureUrlsCache = [];
- /**
- * @param string[] $secureUrlList
- * @param string[] $excludedUrlList
- */
- public function __construct($secureUrlList = [], $excludedUrlList = [])
- {
- $this->secureUrlsList = $secureUrlList;
- $this->excludedUrlsList = $excludedUrlList;
- }
- /**
- * Check whether url is secure
- *
- * @param string $url
- * @return bool
- */
- public function isSecure($url)
- {
- if (!isset($this->secureUrlsCache[$url])) {
- $this->secureUrlsCache[$url] = false;
- foreach ($this->excludedUrlsList as $match) {
- if (strpos($url, (string)$match) === 0) {
- return $this->secureUrlsCache[$url];
- }
- }
- foreach ($this->secureUrlsList as $match) {
- if (strpos($url, (string)$match) === 0) {
- $this->secureUrlsCache[$url] = true;
- break;
- }
- }
- }
- return $this->secureUrlsCache[$url];
- }
- }
|