scopeConfig = $scopeConfig; $this->urlSecurityInfo = $urlSecurityInfo; $this->storeManager = $storeManager; } /** * {@inheritdoc} * * @param \Magento\Framework\App\RequestInterface $request * @return string */ public function getCurrentSecureUrl(\Magento\Framework\App\RequestInterface $request) { $alias = $request->getAlias(\Magento\Framework\Url::REWRITE_REQUEST_PATH_ALIAS) ?: $request->getPathInfo(); return $this->storeManager->getStore()->getBaseUrl('link', true) . ltrim($alias, '/'); } /** * {@inheritdoc} * * @param string $path * @return bool */ public function shouldBeSecure($path) { return parse_url( $this->scopeConfig->getValue( Store::XML_PATH_UNSECURE_BASE_URL, ScopeInterface::SCOPE_STORE ), PHP_URL_SCHEME ) === 'https' || $this->scopeConfig->isSetFlag( Store::XML_PATH_SECURE_IN_FRONTEND, ScopeInterface::SCOPE_STORE ) && parse_url( $this->scopeConfig->getValue( Store::XML_PATH_SECURE_BASE_URL, ScopeInterface::SCOPE_STORE ), PHP_URL_SCHEME ) == 'https' && $this->urlSecurityInfo->isSecure($path); } /** * {@inheritdoc} * * @return string */ public function getDefaultPath() { $store = $this->storeManager->getStore(); $value = $this->scopeConfig->getValue('web/default/front', ScopeInterface::SCOPE_STORE, $store); return $value; } }