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);
use App\Libs\Middlewares\{APIKeyRequiredMiddleware, NoAccessLogMiddleware, ParseJsonBodyMiddleware};
use App\Libs\Middlewares\{AddCorsMiddleware, APIKeyRequiredMiddleware, NoAccessLogMiddleware, ParseJsonBodyMiddleware};
return static fn(): array => [
fn() => new APIKeyRequiredMiddleware(),
fn() => new ParseJsonBodyMiddleware(),
fn() => new NoAccessLogMiddleware(),
fn() => new AddCorsMiddleware(),
];

View File

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

View File

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

View File

@@ -289,7 +289,8 @@ final class Initializer
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);
@@ -389,10 +390,7 @@ final class Initializer
}
})();
$response = $router->dispatch($realRequest);
return $response->withHeader('Access-Control-Allow-Origin', '*')
->withHeader('Access-Control-Allow-Credentials', 'true');
return $router->dispatch($realRequest);
}
/**

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');
}
}