From acd9fa8e3e17b289629eb45e85a1b2eb3b679e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20Klabbers?= Date: Fri, 5 Mar 2021 16:05:13 +0100 Subject: [PATCH] added optional powered-by header (#2618) --- .../core/src/Forum/ForumServiceProvider.php | 3 +- .../Http/Middleware/FlarumPromotionHeader.php | 37 +++++++++++++++++++ .../core/src/Install/Steps/StoreConfig.php | 1 + 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 framework/core/src/Http/Middleware/FlarumPromotionHeader.php diff --git a/framework/core/src/Forum/ForumServiceProvider.php b/framework/core/src/Forum/ForumServiceProvider.php index 383107133..2d1915dd3 100644 --- a/framework/core/src/Forum/ForumServiceProvider.php +++ b/framework/core/src/Forum/ForumServiceProvider.php @@ -67,7 +67,8 @@ class ForumServiceProvider extends AbstractServiceProvider HttpMiddleware\SetLocale::class, 'flarum.forum.route_resolver', HttpMiddleware\CheckCsrfToken::class, - HttpMiddleware\ShareErrorsFromSession::class + HttpMiddleware\ShareErrorsFromSession::class, + HttpMiddleware\FlarumPromotionHeader::class, ]; }); diff --git a/framework/core/src/Http/Middleware/FlarumPromotionHeader.php b/framework/core/src/Http/Middleware/FlarumPromotionHeader.php new file mode 100644 index 000000000..5e809fd0a --- /dev/null +++ b/framework/core/src/Http/Middleware/FlarumPromotionHeader.php @@ -0,0 +1,37 @@ +enabled = $config['poweredByHeader'] ?? true; + } + + public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface + { + $response = $handler->handle($request); + + if ($this->enabled) { + $response = $response->withAddedHeader('X-Powered-By', 'Flarum'); + } + + return $response; + } +} diff --git a/framework/core/src/Install/Steps/StoreConfig.php b/framework/core/src/Install/Steps/StoreConfig.php index 67fbd79da..163b75b60 100644 --- a/framework/core/src/Install/Steps/StoreConfig.php +++ b/framework/core/src/Install/Steps/StoreConfig.php @@ -55,6 +55,7 @@ class StoreConfig implements Step, ReversibleStep { return [ 'debug' => $this->debugMode, + 'poweredByHeader' => true, 'database' => $this->dbConfig->toArray(), 'url' => (string) $this->baseUrl, 'paths' => $this->getPathsConfig(),