8000 bug #9625 [HttpFoundation] Do not return an empty session id if the s… · symfony/symfony@be0a310 · GitHub
[go: up one dir, main page]

Skip to content

Commit be0a310

Browse files
committed
bug #9625 [HttpFoundation] Do not return an empty session id if the session was closed (Taluu)
This PR was merged into the 2.2 branch. Discussion ---------- [HttpFoundation] Do not return an empty session id if the session was closed | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #7936 | License | MIT | Doc PR | ~ A regression from the bug fix #9246 was introduced due to an incomplete fix ; As the `started` flag on the NativeSessionStorage was not `true` anymore when saving the session, the session id was always empty when saving it, and thus when sending the `PHPSESSID` cookie. The previous PR I made (#9530) was another approach to solve this regression, but this one should keep the fix made by @tecbot on #9246, and finish it with another verification. I may miss another place where `started` is used, but I don't really see which other conditions depending on this property should be altered... **Note : this is #9611 rebased on 2.2** This should be mergeable. Commits ------- 5b9a727 When getting the session's id, check if the session is not closed
2 parents 763c8aa + 5b9a727 commit be0a310

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ public function start()
161161
*/
162162
public function getId()
163163
{
164-
if (!$this->started) {
164+
if (!$this->started && !$this->closed) {
165165
return ''; // returning empty is consistent with session_id() behaviour
166166
}
167167

src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,12 @@ public function testGetId()
6262
{
6363
$storage = $this->getStorage();
6464
$this->assertEquals('', $storage->getId());
65+
6566
$storage->start();
6667
$this->assertNotEquals('', $storage->getId());
68+
69+
$storage->save();
70+
$this->assertNotEquals('', $storage->getId());
6771
}
6872

6973
public function testRegenerate()

0 commit comments

Comments
 (0)
0