Skip to content

Commit 466cf5b

Browse files
Try introducing setStateless
1 parent 2fae617 commit 466cf5b

File tree

12 files changed

+19
-13
lines changed

12 files changed

+19
-13
lines changed

src/Symfony/Bundle/SecurityBundle/Security/FirewallMap.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ private function getFirewallContext(Request $request): ?FirewallContext
6767
$context = $this->container->get($contextId);
6868

6969
if ($context->getConfig()?->isStateless() && !$request->attributes->has('_stateless')) {
70-
$request->attributes->set('_stateless', true);
70+
$request->setStateless();
7171
}
7272

7373
return $context;

src/Symfony/Bundle/SecurityBundle/Tests/Security/FirewallMapTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public function testGetListeners(Request $request, bool $expectedState)
8888
$this->assertEquals([[$listener], $exceptionListener, $logoutListener], $firewallMap->getListeners($request));
8989
$this->assertEquals($firewallConfig, $firewallMap->getFirewallConfig($request));
9090
$this->assertEquals('security.firewall.map.context.foo', $request->attributes->get(self::ATTRIBUTE_FIREWALL_CONTEXT));
91-
$this->assertEquals($expectedState, method_exists($request, 'isStateless') ? $request->isStateless() : $request->attributes->get('_stateless'));
91+
$this->assertEquals($expectedState, $request->isStateless());
9292
}
9393

9494
public static function providesStatefulStatelessRequests(): \Generator

src/Symfony/Bundle/SecurityBundle/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"symfony/dependency-injection": "^6.4|^7.0",
2525
"symfony/event-dispatcher": "^6.4|^7.0",
2626
"symfony/http-kernel": "^6.4|^7.0",
27-
"symfony/http-foundation": "^6.4|^7.0",
27+
"symfony/http-foundation": "^7.2",
2828
"symfony/password-hasher": "^6.4|^7.0",
2929
"symfony/security-core": "^7.2",
3030
"symfony/security-csrf": "^6.4|^7.0",

src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public function toolbarAction(Request $request, ?string $token = null): Response
127127
throw new NotFoundHttpException('The profiler must be enabled.');
128128
}
129129

130-
if (!$request->attributes->getBoolean('_stateless') && $request->hasSession()
130+
if (!$request->isStateless() && $request->hasSession()
131131
&& ($session = $request->getSession())->isStarted() && $session->getFlashBag() instanceof AutoExpireFlashBag
132132
) {
133133
// keep current flashes for one more request if using AutoExpireFlashBag
@@ -174,7 +174,7 @@ public function searchBarAction(Request $request): Response
174174
$this->cspHandler?->disableCsp();
175175

176176
$session = null;
177-
if (!$request->attributes->getBoolean('_stateless') && $request->hasSession()) {
177+
if (!$request->isStateless() && $request->hasSession()) {
178178
$session = $request->getSession();
179179
}
180180

@@ -254,7 +254,7 @@ public function searchAction(Request $request): Response
254254
$token = $request->query->get('token');
255255
$profileType = $request->query->get('type', 'request');
256256

257-
if (!$request->attributes->getBoolean('_stateless') && $request->hasSession()) {
257+
if (!$request->isStateless() && $request->hasSession()) {
258258
$session = $request->getSession();
259259

260260
$session->set('_profiler_search_ip', $ip);

src/Symfony/Bundle/WebProfilerBundle/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"symfony/config": "^6.4|^7.0",
2121
"symfony/framework-bundle": "^6.4|^7.0",
2222
"symfony/http-kernel": "^6.4|^7.0",
23+
"symfony/http-foundation": "^7.2",
2324
"symfony/routing": "^6.4|^7.0",
2425
"symfony/twig-bundle": "^6.4|^7.0",
2526
"twig/twig": "^3.10"

src/Symfony/Component/HttpFoundation/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ CHANGELOG
44
7.2
55
--
66

7-
* Add `Request::isStateless()`
7+
* Add `Request::isStateless()` and `Request::setStateless()`
88

99
7.1
1010
---

src/Symfony/Component/HttpFoundation/Request.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,11 @@ public function get(string $key, mixed $default = null): mixed
652652
return $default;
653653
}
654654

655+
public function setStateless(bool $stateless = true): void
656+
{
657+
$this->attributes->set('_stateless', $stateless);
658+
}
659+
655660
public function isStateless(): bool
656661
{
657662
return $this->attributes->getBoolean('_stateless');

src/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ protected function createSubRequest(string $uri, Request $request): Request
125125
$subRequest->setLocale($request->getLocale());
126126
}
127127
if ($request->attributes->has('_stateless')) {
128-
$subRequest->attributes->set('_stateless', $request->attributes->get('_stateless'));
128+
$subRequest->setStateless($request->isStateless());
129129
}
130130
if ($request->attributes->has('_check_controller_is_allowed')) {
131131
$subRequest->attributes->set('_check_controller_is_allowed', $request->attributes->get('_check_controller_is_allowed'));

src/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ public function testStatelessCheck()
318318

319319
$requestStack = new RequestStack();
320320
$request = $this->createRequest();
321-
$request->attributes->set('_stateless', true);
321+
$request->setStateless();
322322
$requestStack->push($request);
323323

324324
$collector = new RequestDataCollector($requestStack);

src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -753,7 +753,7 @@ public function testSessionUsageExceptionIfStatelessAndSessionUsed()
753753
$kernel = $this->createMock(HttpKernelInterface::class);
754754

755755
$request = new Request();
756-
$request->attributes->set('_stateless', true);
756+
$request->setStateless();
757757
$listener->onKernelRequest(new RequestEvent($kernel, $request, HttpKernelInterface::MAIN_REQUEST));
758758
$request->getSession();
759759

@@ -824,7 +824,7 @@ public function testSessionUsageCallbackWhenDebugAndStateless()
824824
$requestStack = new RequestStack();
825825

826826
$request = new Request();
827-
$request->attributes->set('_stateless', true);
827+
$request->setStateless();
828828

829829
$requestStack->push(new Request());
830830
$requestStack->push($request);

0 commit comments

Comments
 (0)