File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ class HttpExtension extends Nette\DI\CompilerExtension
2727 'csp ' => [], // Content-Security-Policy
2828 'cspReport ' => [], // Content-Security-Policy-Report-Only
2929 'featurePolicy ' => [], // Feature-Policy
30+ 'secureCookies ' => null ,
3031 ];
3132
3233 /** @var bool */
@@ -52,10 +53,14 @@ public function loadConfiguration()
5253 ->setFactory ('@Nette\Http\RequestFactory::createHttpRequest ' )
5354 ->setClass (Nette \Http \IRequest::class);
5455
55- $ builder ->addDefinition ($ this ->prefix ('response ' ))
56+ $ response = $ builder ->addDefinition ($ this ->prefix ('response ' ))
5657 ->setFactory (Nette \Http \Response::class)
5758 ->setClass (Nette \Http \IResponse::class);
5859
60+ if (!empty ($ config ['secureCookies ' ])) {
61+ $ response ->addSetup ('$cookieSecure ' , [true ]);
62+ }
63+
5964 if ($ this ->name === 'http ' ) {
6065 $ builder ->addAlias ('nette.httpRequestFactory ' , $ this ->prefix ('requestFactory ' ));
6166 $ builder ->addAlias ('httpRequest ' , $ this ->prefix ('request ' ));
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ /**
4+ * Test: SessionExtension.
5+ */
6+
7+ declare (strict_types=1 );
8+
9+ use Nette \Bridges \HttpDI \HttpExtension ;
10+ use Nette \Bridges \HttpDI \SessionExtension ;
11+ use Nette \DI ;
12+ use Tester \Assert ;
13+
14+
15+ require __DIR__ . '/../bootstrap.php ' ;
16+
17+
18+ $ compiler = new DI \Compiler ;
19+ $ compiler ->addExtension ('http ' , new HttpExtension );
20+ $ compiler ->addExtension ('session ' , new SessionExtension (false , PHP_SAPI === 'cli ' ));
21+
22+ $ loader = new DI \Config \Loader ;
23+ $ config = $ loader ->load (Tester \FileMock::create ('
24+ http:
25+ secureCookies: yes
26+ ' , 'neon ' ));
27+
28+ eval ($ compiler ->addConfig ($ config )->compile ());
29+
30+ $ container = new Container ;
31+
32+ Assert::true ($ container ->getService ('http.response ' )->cookieSecure );
33+ Assert::true ($ container ->getService ('session.session ' )->getOptions ()['cookie_secure ' ]);
You can’t perform that action at this time.
0 commit comments