Skip to content

Commit f554118

Browse files
committed
SessionExtension: checks that cookieSamesite is Lax|Strict|None (BC break)
1 parent 2147863 commit f554118

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

src/Bridges/HttpDI/SessionExtension.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
namespace Nette\Bridges\HttpDI;
1111

1212
use Nette;
13+
use Nette\Http\IResponse;
1314
use Nette\Schema\Expect;
1415

1516

@@ -40,6 +41,8 @@ public function getConfigSchema(): Nette\Schema\Schema
4041
'expiration' => Expect::string()->dynamic(),
4142
'handler' => Expect::string()->dynamic(),
4243
'readAndClose' => Expect::bool(),
44+
'cookieSamesite' => Expect::anyOf(IResponse::SAME_SITE_LAX, IResponse::SAME_SITE_STRICT, IResponse::SAME_SITE_NONE, true)
45+
->default(IResponse::SAME_SITE_LAX),
4346
])->otherItems('mixed');
4447
}
4548

@@ -64,8 +67,9 @@ public function loadConfiguration()
6467
if (($config->cookieSecure ?? null) === 'auto') {
6568
$config->cookieSecure = $builder::literal('$this->getByType(Nette\Http\IRequest::class)->isSecured()');
6669
}
67-
if (($config->cookieSamesite ?? null) === true) {
68-
$config->cookieSamesite = Nette\Http\IResponse::SAME_SITE_LAX;
70+
if ($config->cookieSamesite === true) {
71+
trigger_error("In 'session › cookieSamesite' replace true with 'Lax'.", E_USER_DEPRECATED);
72+
$config->cookieSamesite = IResponse::SAME_SITE_LAX;
6973
}
7074
$this->compiler->addExportedType(Nette\Http\IRequest::class);
7175

tests/Http.DI/SessionExtension.config.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ session:
2525
cookiePath: /x
2626
cookieDomain: domain
2727
cookieSecure: yes
28-
cookieSamesite: true
28+
cookieSamesite: Lax
2929
3030
services:
3131
foo.request: Nette\Http\Request(Nette\Http\UrlScript("http://www.nette.org"))

0 commit comments

Comments
 (0)