FO: Fix #PSCFV-5800 don't send any cookie on canonical redirection
This commit is contained in:
+9
-1
@@ -51,6 +51,8 @@ class CookieCore
|
|||||||
protected $_iv;
|
protected $_iv;
|
||||||
|
|
||||||
protected $_modified = false;
|
protected $_modified = false;
|
||||||
|
|
||||||
|
protected $_allow_writing;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get data if the cookie exists and else initialize an new one
|
* Get data if the cookie exists and else initialize an new one
|
||||||
@@ -71,6 +73,7 @@ class CookieCore
|
|||||||
$this->_key = _COOKIE_KEY_;
|
$this->_key = _COOKIE_KEY_;
|
||||||
$this->_iv = _COOKIE_IV_;
|
$this->_iv = _COOKIE_IV_;
|
||||||
$this->_domain = $this->getDomain($shared_urls);
|
$this->_domain = $this->getDomain($shared_urls);
|
||||||
|
$this->_allow_writing = true;
|
||||||
if (Configuration::get('PS_CIPHER_ALGORITHM'))
|
if (Configuration::get('PS_CIPHER_ALGORITHM'))
|
||||||
$this->_cipherTool = new Rijndael(_RIJNDAEL_KEY_, _RIJNDAEL_IV_);
|
$this->_cipherTool = new Rijndael(_RIJNDAEL_KEY_, _RIJNDAEL_IV_);
|
||||||
else
|
else
|
||||||
@@ -78,6 +81,11 @@ class CookieCore
|
|||||||
$this->update();
|
$this->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function disallowWriting()
|
||||||
|
{
|
||||||
|
$this->_allow_writing = false;
|
||||||
|
}
|
||||||
|
|
||||||
protected function getDomain($shared_urls = null)
|
protected function getDomain($shared_urls = null)
|
||||||
{
|
{
|
||||||
$r = '!(?:(\w+)://)?(?:(\w+)\:(\w+)@)?([^/:]+)?(?:\:(\d*))?([^#?]+)?(?:\?([^#]+))?(?:#(.+$))?!i';
|
$r = '!(?:(\w+)://)?(?:(\w+)\:(\w+)@)?([^/:]+)?(?:\:(\d*))?([^#?]+)?(?:\?([^#]+))?(?:#(.+$))?!i';
|
||||||
@@ -325,7 +333,7 @@ class CookieCore
|
|||||||
*/
|
*/
|
||||||
public function write()
|
public function write()
|
||||||
{
|
{
|
||||||
if (!$this->_modified || headers_sent())
|
if (!$this->_modified || headers_sent() || !$this->_allow_writing)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$cookie = '';
|
$cookie = '';
|
||||||
|
|||||||
@@ -657,6 +657,9 @@ class FrontControllerCore extends Controller
|
|||||||
else
|
else
|
||||||
$final_url = preg_replace('/^([^?]*)?.*$/', '$1', $canonical_url);
|
$final_url = preg_replace('/^([^?]*)?.*$/', '$1', $canonical_url);
|
||||||
|
|
||||||
|
// Don't send any cookie
|
||||||
|
Context::getContext()->cookie->disallowWriting();
|
||||||
|
|
||||||
if (defined('_PS_MODE_DEV_') && _PS_MODE_DEV_ && $_SERVER['REQUEST_URI'] != __PS_BASE_URI__)
|
if (defined('_PS_MODE_DEV_') && _PS_MODE_DEV_ && $_SERVER['REQUEST_URI'] != __PS_BASE_URI__)
|
||||||
die('[Debug] This page has moved<br />Please use the following URL instead: <a href="'.$final_url.'">'.$final_url.'</a>');
|
die('[Debug] This page has moved<br />Please use the following URL instead: <a href="'.$final_url.'">'.$final_url.'</a>');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user