diff --git a/app/code/Magento/Store/App/FrontController/Plugin/RequestPreprocessor.php b/app/code/Magento/Store/App/FrontController/Plugin/RequestPreprocessor.php index 57307c083d01246894146ce4e3aa865a172bee20..4d5e21f50edd3273c794c866c5e86d6ebfc8f679 100644 --- a/app/code/Magento/Store/App/FrontController/Plugin/RequestPreprocessor.php +++ b/app/code/Magento/Store/App/FrontController/Plugin/RequestPreprocessor.php @@ -79,6 +79,7 @@ class RequestPreprocessor $response = $this->_responseFactory->create(); $response->setRedirect($redirectUrl, $redirectCode); + $response->setNoCacheHeaders(); return $response; } } diff --git a/app/code/Magento/Store/Model/Store.php b/app/code/Magento/Store/Model/Store.php index 7dbf046110e38000509cbd55318a57efbc1b80f0..1da41cae73e20593dcdc498b6b4a1bc94bb5a0b6 100644 --- a/app/code/Magento/Store/Model/Store.php +++ b/app/code/Magento/Store/Model/Store.php @@ -755,7 +755,12 @@ class Store extends AbstractModel implements \Magento\Store\Model\ScopeInterface::SCOPE_STORE ); - if (!$secureBaseUrl) { + if (!$secureBaseUrl || + !$this->_config->getValue( + self::XML_PATH_SECURE_IN_FRONTEND, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ) + ) { return false; } diff --git a/app/code/Magento/Store/Test/Unit/Model/StoreTest.php b/app/code/Magento/Store/Test/Unit/Model/StoreTest.php index c43af1f004dfe6972d9521e3d49bd6474fb99a4b..e9a6f8ecf7207c03889a4043d02168d18e6e5b72 100644 --- a/app/code/Magento/Store/Test/Unit/Model/StoreTest.php +++ b/app/code/Magento/Store/Test/Unit/Model/StoreTest.php @@ -546,12 +546,15 @@ class StoreTest extends \PHPUnit_Framework_TestCase * * @param bool $expected * @param array $value + * @param bool $requestSecure + * @param bool $useSecureInFrontend * @param string|null $secureBaseUrl */ public function testIsCurrentlySecure( $expected, $value, $requestSecure = false, + $useSecureInFrontend = true, $secureBaseUrl = 'https://example.com:443' ) { /* @var ReinitableConfigInterface|PHPUnit_Framework_MockObject_MockObject $configMock */ @@ -565,6 +568,12 @@ class StoreTest extends \PHPUnit_Framework_TestCase null, $secureBaseUrl ], + [ + Store::XML_PATH_SECURE_IN_FRONTEND, + ScopeInterface::SCOPE_STORE, + null, + $useSecureInFrontend + ] ])); $this->requestMock->expects($this->any()) @@ -594,8 +603,12 @@ class StoreTest extends \PHPUnit_Framework_TestCase return [ 'secure request, no server setting' => [true, [], true], 'unsecure request, using registered port' => [true, 443], - 'unsecure request, no secure base url registered' => [false, 443, false, null], + 'unsecure request, no secure base url registered' => [false, 443, false, true, null], 'unsecure request, not using registered port' => [false, 80], + 'unsecure request, using registered port, not using secure in frontend' => [false, 443, false, false], + 'unsecure request, no secure base url registered, not using secure in frontend' => + [false, 443, false, false, null], + 'unsecure request, not using registered port, not using secure in frontend' => [false, 80, false, false], ]; } diff --git a/dev/tests/integration/testsuite/Magento/Store/Model/StoreTest.php b/dev/tests/integration/testsuite/Magento/Store/Model/StoreTest.php index 8fbdd0f346d4b0c410bd35387dd45564504b61f8..a84b46c3c2981e420d24a251db6a0b46cc332eee 100644 --- a/dev/tests/integration/testsuite/Magento/Store/Model/StoreTest.php +++ b/dev/tests/integration/testsuite/Magento/Store/Model/StoreTest.php @@ -451,7 +451,8 @@ class StoreTest extends \PHPUnit_Framework_TestCase [true, ['HTTPS' => 'on']], [true, ['SSL_OFFLOADED' => 'https']], [true, ['HTTP_SSL_OFFLOADED' => 'https']], - [true, ['SERVER_PORT' => 80]], + [true, ['HTTPS' => 'on', 'SERVER_PORT' => 80]], + [false, ['SERVER_PORT' => 80]], [false, []], ]; }