Skip to content

Commit 9d811a1

Browse files
committed
feature #35732 [FrameworkBundle][HttpKernel] Add session usage reporting in stateless mode (mtarld)
This PR was merged into the 5.1-dev branch. Discussion ---------- [FrameworkBundle][HttpKernel] Add session usage reporting in stateless mode | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | yes | Deprecations? | no | License | MIT | Doc PR | TODO https://github.com/orgs/symfony/projects/1#card-30506005 Provide a `@Stateless` annotation that forbid session usage for annotated controllers (or classes). ## Implementations **v1** - ~~New session proxy that allows session to be marked as disabled~~ - ~~New default route attribute: `_stateless` (automatically set by `@Stateless`)~~ - ~~On kernel controller event, if `_stateless` is `true`, session is marked as disabled~~ - ~~Session listener is able to check if the session is disabled and prevent its creation~~ **v2** - New default route attribute: `_stateless` (automatically set by `@Stateless`) - On kernel response, check the session usage and if session was used when `_stateless` attribute is set to `true`: Either throw an exception (debug enabled) or log a warning (debug disabled) Commits ------- bc48db2424 [FrameworkBundle][HttpFoundation] Add `_stateless`
2 parents d213b40 + e870c43 commit 9d811a1

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

Resources/config/session.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@
6666
<argument type="service_locator">
6767
<argument key="session" type="service" id="session" on-invalid="ignore" />
6868
<argument key="initialized_session" type="service" id="session" on-invalid="ignore_uninitialized" />
69+
<argument key="logger" type="service" id="logger" on-invalid="ignore" />
6970
</argument>
71+
<argument>%kernel.debug%</argument>
7072
</service>
7173

7274
<!-- for BC -->

Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ public function testNullSessionHandler()
504504
$this->assertNull($container->getDefinition('session.storage.native')->getArgument(1));
505505
$this->assertNull($container->getDefinition('session.storage.php_bridge')->getArgument(0));
506506

507-
$expected = ['session', 'initialized_session'];
507+
$expected = ['session', 'initialized_session', 'logger'];
508508
$this->assertEquals($expected, array_keys($container->getDefinition('session_listener')->getArgument(0)->getValues()));
509509
}
510510

@@ -1301,7 +1301,7 @@ public function testSessionCookieSecureAuto()
13011301
{
13021302
$container = $this->createContainerFromFile('session_cookie_secure_auto');
13031303

1304-
$expected = ['session', 'initialized_session', 'session_storage', 'request_stack'];
1304+
$expected = ['session', 'initialized_session', 'logger', 'session_storage', 'request_stack'];
13051305
$this->assertEquals($expected, array_keys($container->getDefinition('session_listener')->getArgument(0)->getValues()));
13061306
}
13071307

0 commit comments

Comments
 (0)