mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-22 23:07:20 +00:00
Make the session cacheLimiter a configuration option.
Instead of hardcoding to must-revalidate, developers can use a more suitable option if they do not have to support IE8. Refs #7096
This commit is contained in:
parent
a530414a88
commit
57f620fc22
3 changed files with 26 additions and 2 deletions
|
@ -201,6 +201,8 @@
|
||||||
* to the ini array.
|
* to the ini array.
|
||||||
* - `Session.autoRegenerate` - Enabling this setting, turns on automatic renewal of sessions, and
|
* - `Session.autoRegenerate` - Enabling this setting, turns on automatic renewal of sessions, and
|
||||||
* sessionids that change frequently. See CakeSession::$requestCountdown.
|
* sessionids that change frequently. See CakeSession::$requestCountdown.
|
||||||
|
* - `Session.cacheLimiter` - Configure the cache control headers used for the session cookie.
|
||||||
|
* See http://php.net/session_cache_limiter for accepted values.
|
||||||
* - `Session.ini` - An associative array of additional ini values to set.
|
* - `Session.ini` - An associative array of additional ini values to set.
|
||||||
*
|
*
|
||||||
* The built in defaults are:
|
* The built in defaults are:
|
||||||
|
|
|
@ -541,6 +541,10 @@ class CakeSession {
|
||||||
if (!isset($sessionConfig['ini']['session.cookie_httponly'])) {
|
if (!isset($sessionConfig['ini']['session.cookie_httponly'])) {
|
||||||
$sessionConfig['ini']['session.cookie_httponly'] = 1;
|
$sessionConfig['ini']['session.cookie_httponly'] = 1;
|
||||||
}
|
}
|
||||||
|
// For IE<=8
|
||||||
|
if (!isset($sessionConfig['cacheLimiter'])) {
|
||||||
|
$sessionConfig['cacheLimiter'] = 'must-revalidate';
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($_SESSION)) {
|
if (empty($_SESSION)) {
|
||||||
if (!empty($sessionConfig['ini']) && is_array($sessionConfig['ini'])) {
|
if (!empty($sessionConfig['ini']) && is_array($sessionConfig['ini'])) {
|
||||||
|
@ -696,8 +700,10 @@ class CakeSession {
|
||||||
$_SESSION = array();
|
$_SESSION = array();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// For IE<=8
|
$limit = Configure::read('Session.cacheLimiter');
|
||||||
session_cache_limiter("must-revalidate");
|
if (!empty($limit)) {
|
||||||
|
session_cache_limiter($limit);
|
||||||
|
}
|
||||||
session_start();
|
session_start();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -514,6 +514,22 @@ class CakeSessionTest extends CakeTestCase {
|
||||||
$this->assertEquals(null, TestCakeSession::read('SessionTestCase'));
|
$this->assertEquals(null, TestCakeSession::read('SessionTestCase'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test te cacheLimiter settings.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testCacheLimiter() {
|
||||||
|
Configure::write('Session.cacheLimiter', 'public');
|
||||||
|
TestCakeSession::start();
|
||||||
|
$this->assertSame('public', session_cache_limiter());
|
||||||
|
|
||||||
|
Configure::write('Session.cacheLimiter', 'private');
|
||||||
|
TestCakeSession::destroy();
|
||||||
|
TestCakeSession::start();
|
||||||
|
$this->assertSame('private', session_cache_limiter());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* testCheckUserAgentFalse method
|
* testCheckUserAgentFalse method
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue