Skip to content

Commit d4fb88f

Browse files
committed
fix: Tidy up middleware registration code and scope them to application container
This make sure that all middlewares get a logger scoped to the application id, among other things. Signed-off-by: Côme Chilliet <[email protected]>
1 parent 4232641 commit d4fb88f

1 file changed

Lines changed: 28 additions & 45 deletions

File tree

lib/private/AppFramework/DependencyInjection/DIContainer.php

Lines changed: 28 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,24 @@
1010

1111
namespace OC\AppFramework\DependencyInjection;
1212

13-
use OC;
1413
use OC\AppFramework\Http;
1514
use OC\AppFramework\Http\Dispatcher;
1615
use OC\AppFramework\Http\Output;
16+
use OC\AppFramework\Middleware\AdditionalScriptsMiddleware;
17+
use OC\AppFramework\Middleware\CompressionMiddleware;
1718
use OC\AppFramework\Middleware\FlowV2EphemeralSessionsMiddleware;
1819
use OC\AppFramework\Middleware\MiddlewareDispatcher;
20+
use OC\AppFramework\Middleware\NotModifiedMiddleware;
1921
use OC\AppFramework\Middleware\OCSMiddleware;
22+
use OC\AppFramework\Middleware\PublicShare\PublicShareMiddleware;
23+
use OC\AppFramework\Middleware\Security\BruteForceMiddleware;
2024
use OC\AppFramework\Middleware\Security\CORSMiddleware;
25+
use OC\AppFramework\Middleware\Security\CSPMiddleware;
26+
use OC\AppFramework\Middleware\Security\FeaturePolicyMiddleware;
27+
use OC\AppFramework\Middleware\Security\PasswordConfirmationMiddleware;
2128
use OC\AppFramework\Middleware\Security\RateLimitingMiddleware;
29+
use OC\AppFramework\Middleware\Security\ReloadExecutionMiddleware;
30+
use OC\AppFramework\Middleware\Security\SameSiteCookieMiddleware;
2231
use OC\AppFramework\Middleware\Security\SecurityMiddleware;
2332
use OC\AppFramework\Middleware\SessionMiddleware;
2433
use OC\AppFramework\ScopedPsrLogger;
@@ -172,25 +181,12 @@ public function __construct(string $appName, array $urlParams = [], ?ServerConta
172181

173182
$dispatcher = new MiddlewareDispatcher();
174183

175-
$dispatcher->registerMiddleware(
176-
$c->get(OC\AppFramework\Middleware\CompressionMiddleware::class)
177-
);
178-
179-
$dispatcher->registerMiddleware($c->get(OC\AppFramework\Middleware\NotModifiedMiddleware::class));
180-
181-
$dispatcher->registerMiddleware(
182-
$c->get(OC\AppFramework\Middleware\Security\ReloadExecutionMiddleware::class)
183-
);
184-
185-
$dispatcher->registerMiddleware(
186-
$c->get(OC\AppFramework\Middleware\Security\SameSiteCookieMiddleware::class)
187-
);
188-
$dispatcher->registerMiddleware(
189-
$c->get(CORSMiddleware::class)
190-
);
191-
$dispatcher->registerMiddleware(
192-
$c->get(OCSMiddleware::class)
193-
);
184+
$dispatcher->registerMiddleware($c->get(CompressionMiddleware::class));
185+
$dispatcher->registerMiddleware($c->get(NotModifiedMiddleware::class));
186+
$dispatcher->registerMiddleware($c->get(ReloadExecutionMiddleware::class));
187+
$dispatcher->registerMiddleware($c->get(SameSiteCookieMiddleware::class));
188+
$dispatcher->registerMiddleware($c->get(CORSMiddleware::class));
189+
$dispatcher->registerMiddleware($c->get(OCSMiddleware::class));
194190

195191
$dispatcher->registerMiddleware($c->get(FlowV2EphemeralSessionsMiddleware::class));
196192

@@ -211,28 +207,14 @@ public function __construct(string $appName, array $urlParams = [], ?ServerConta
211207
$c->get(IRemoteAddress::class),
212208
);
213209
$dispatcher->registerMiddleware($securityMiddleware);
214-
$dispatcher->registerMiddleware(
215-
$c->get(OC\AppFramework\Middleware\Security\CSPMiddleware::class)
216-
);
217-
$dispatcher->registerMiddleware(
218-
$c->get(OC\AppFramework\Middleware\Security\FeaturePolicyMiddleware::class)
219-
);
220-
$dispatcher->registerMiddleware(
221-
$c->get(OC\AppFramework\Middleware\Security\PasswordConfirmationMiddleware::class)
222-
);
223-
$dispatcher->registerMiddleware(
224-
$c->get(TwoFactorMiddleware::class)
225-
);
226-
$dispatcher->registerMiddleware(
227-
$c->get(OC\AppFramework\Middleware\Security\BruteForceMiddleware::class)
228-
);
210+
$dispatcher->registerMiddleware($c->get(CSPMiddleware::class));
211+
$dispatcher->registerMiddleware($c->get(FeaturePolicyMiddleware::class));
212+
$dispatcher->registerMiddleware($c->get(PasswordConfirmationMiddleware::class));
213+
$dispatcher->registerMiddleware($c->get(TwoFactorMiddleware::class));
214+
$dispatcher->registerMiddleware($c->get(BruteForceMiddleware::class));
229215
$dispatcher->registerMiddleware($c->get(RateLimitingMiddleware::class));
230-
$dispatcher->registerMiddleware(
231-
$c->get(OC\AppFramework\Middleware\PublicShare\PublicShareMiddleware::class)
232-
);
233-
$dispatcher->registerMiddleware(
234-
$c->get(\OC\AppFramework\Middleware\AdditionalScriptsMiddleware::class)
235-
);
216+
$dispatcher->registerMiddleware($c->get(PublicShareMiddleware::class));
217+
$dispatcher->registerMiddleware($c->get(AdditionalScriptsMiddleware::class));
236218

237219
$coordinator = $c->get(\OC\AppFramework\Bootstrap\Coordinator::class);
238220
$registrationContext = $coordinator->getRegistrationContext();
@@ -249,9 +231,7 @@ public function __construct(string $appName, array $urlParams = [], ?ServerConta
249231
$dispatcher->registerMiddleware($c->get($middleWare));
250232
}
251233

252-
$dispatcher->registerMiddleware(
253-
$c->get(SessionMiddleware::class)
254-
);
234+
$dispatcher->registerMiddleware($c->get(SessionMiddleware::class));
255235
return $dispatcher;
256236
});
257237

@@ -369,7 +349,10 @@ public function queryNoFallback($name) {
369349
return parent::query($name);
370350
} elseif (str_starts_with($name, \OC\AppFramework\App::buildAppNamespace($this->appName) . '\\')) {
371351
return parent::query($name);
372-
} elseif (str_starts_with($name, 'OC\\AppFramework\\Services\\')) {
352+
} elseif (
353+
str_starts_with($name, 'OC\\AppFramework\\Services\\')
354+
|| str_starts_with($name, 'OC\\AppFramework\\Middleware\\')
355+
) {
373356
/* AppFramework services are scoped to the application */
374357
return parent::query($name);
375358
}

0 commit comments

Comments
 (0)