Move the Access Control headers to a middleware.

This commit is contained in:
abdulmohsen
2024-05-19 15:48:22 +03:00
parent 91610dddeb
commit 6d6b804bdc
5 changed files with 24 additions and 10 deletions

View File

@@ -2,10 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
use App\Libs\Middlewares\{APIKeyRequiredMiddleware, NoAccessLogMiddleware, ParseJsonBodyMiddleware}; use App\Libs\Middlewares\{AddCorsMiddleware, APIKeyRequiredMiddleware, NoAccessLogMiddleware, ParseJsonBodyMiddleware};
return static fn(): array => [ return static fn(): array => [
fn() => new APIKeyRequiredMiddleware(), fn() => new APIKeyRequiredMiddleware(),
fn() => new ParseJsonBodyMiddleware(), fn() => new ParseJsonBodyMiddleware(),
fn() => new NoAccessLogMiddleware(), fn() => new NoAccessLogMiddleware(),
fn() => new AddCorsMiddleware(),
]; ];

View File

@@ -268,8 +268,6 @@ final class Index
'Cache-Control' => 'no-cache', 'Cache-Control' => 'no-cache',
'Connection' => 'keep-alive', 'Connection' => 'keep-alive',
'X-Accel-Buffering' => 'no', 'X-Accel-Buffering' => 'no',
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Credentials' => 'true',
], ],
body: StreamClosure::create($callable) body: StreamClosure::create($callable)
))->withoutHeader('Content-Length'); ))->withoutHeader('Content-Length');

View File

@@ -139,8 +139,6 @@ final class Command
'Cache-Control' => 'no-cache', 'Cache-Control' => 'no-cache',
'Connection' => 'keep-alive', 'Connection' => 'keep-alive',
'X-Accel-Buffering' => 'no', 'X-Accel-Buffering' => 'no',
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Credentials' => 'true',
'Last-Event-Id' => time(), 'Last-Event-Id' => time(),
], ],
body: StreamClosure::create($callable) body: StreamClosure::create($callable)

View File

@@ -289,7 +289,8 @@ final class Initializer
return $response; return $response;
} }
return (new ServeStatic())->serve($request); return (new ServeStatic())->serve($request)->withHeader('Access-Control-Allow-Origin', '*')
->withHeader('Access-Control-Allow-Credentials', 'true');
} }
$configFile = ConfigFile::open(Config::get('backends_file'), 'yaml', autoCreate: true); $configFile = ConfigFile::open(Config::get('backends_file'), 'yaml', autoCreate: true);
@@ -389,10 +390,7 @@ final class Initializer
} }
})(); })();
$response = $router->dispatch($realRequest); return $router->dispatch($realRequest);
return $response->withHeader('Access-Control-Allow-Origin', '*')
->withHeader('Access-Control-Allow-Credentials', 'true');
} }
/** /**

View File

@@ -0,0 +1,19 @@
<?php
declare(strict_types=1);
namespace App\Libs\Middlewares;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
final class AddCorsMiddleware implements MiddlewareInterface
{
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
return $handler->handle($request)->withHeader('Access-Control-Allow-Origin', '*')
->withHeader('Access-Control-Allow-Credentials', 'true');
}
}