[HttpFoundation] NativeSessionStorage method wrongly sets storage as started
This commit is contained in:
parent
68353a6305
commit
8e6ef9cb56
@ -195,6 +195,16 @@ class NativeSessionStorage implements SessionStorageInterface
|
|||||||
*/
|
*/
|
||||||
public function regenerate($destroy = false, $lifetime = null)
|
public function regenerate($destroy = false, $lifetime = null)
|
||||||
{
|
{
|
||||||
|
// Cannot regenerate the session ID for non-active sessions.
|
||||||
|
if (PHP_VERSION_ID >= 50400 && \PHP_SESSION_ACTIVE !== session_status()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if session ID exists in PHP 5.3
|
||||||
|
if (PHP_VERSION_ID < 50400 && '' === session_id()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (null !== $lifetime) {
|
if (null !== $lifetime) {
|
||||||
ini_set('session.cookie_lifetime', $lifetime);
|
ini_set('session.cookie_lifetime', $lifetime);
|
||||||
}
|
}
|
||||||
|
@ -130,6 +130,13 @@ class NativeSessionStorageTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertEquals(42, $_SESSION['_sf2_attributes']['lucky']);
|
$this->assertEquals(42, $_SESSION['_sf2_attributes']['lucky']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testRegenerationFailureDoesNotFlagStorageAsStarted()
|
||||||
|
{
|
||||||
|
$storage = $this->getStorage();
|
||||||
|
$this->assertFalse($storage->regenerate());
|
||||||
|
$this->assertFalse($storage->isStarted());
|
||||||
|
}
|
||||||
|
|
||||||
public function testDefaultSessionCacheLimiter()
|
public function testDefaultSessionCacheLimiter()
|
||||||
{
|
{
|
||||||
$this->iniSet('session.cache_limiter', 'nocache');
|
$this->iniSet('session.cache_limiter', 'nocache');
|
||||||
|
Reference in New Issue
Block a user