Skip to content

Commit 3573ad9

Browse files
committed
Improve CORS middleware
1 parent a891e07 commit 3573ad9

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

src/Tqdev/PhpCrudApi/Middleware/CorsMiddleware.php

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,33 @@ public function handle(Request $request): Response
3333
} elseif ($method == 'OPTIONS') {
3434
$response = new Response(Response::OK, '');
3535
$allowHeaders = $this->getProperty('allowHeaders', 'Content-Type, X-XSRF-TOKEN');
36-
$response->addHeader('Access-Control-Allow-Headers', $allowHeaders);
36+
if ($allowHeaders) {
37+
$response->addHeader('Access-Control-Allow-Headers', $allowHeaders);
38+
}
3739
$allowMethods = $this->getProperty('allowMethods', 'OPTIONS, GET, PUT, POST, DELETE, PATCH');
38-
$response->addHeader('Access-Control-Allow-Methods', $allowMethods);
40+
if ($allowMethods) {
41+
$response->addHeader('Access-Control-Allow-Methods', $allowMethods);
42+
}
3943
$allowCredentials = $this->getProperty('allowCredentials', 'true');
40-
$response->addHeader('Access-Control-Allow-Credentials', $allowCredentials);
44+
if ($allowCredentials) {
45+
$response->addHeader('Access-Control-Allow-Credentials', $allowCredentials);
46+
}
4147
$maxAge = $this->getProperty('maxAge', '1728000');
42-
$response->addHeader('Access-Control-Max-Age', $maxAge);
48+
if ($maxAge) {
49+
$response->addHeader('Access-Control-Max-Age', $maxAge);
50+
}
51+
$exposeHeaders = $this->getProperty('exposeHeaders', '');
52+
if ($exposeHeaders) {
53+
$response->addHeader('Access-Control-Expose-Headers', $exposeHeaders);
54+
}
4355
} else {
4456
$response = $this->next->handle($request);
4557
}
4658
if ($origin) {
4759
$allowCredentials = $this->getProperty('allowCredentials', 'true');
48-
$response->addHeader('Access-Control-Allow-Credentials', $allowCredentials);
60+
if ($allowCredentials) {
61+
$response->addHeader('Access-Control-Allow-Credentials', $allowCredentials);
62+
}
4963
$response->addHeader('Access-Control-Allow-Origin', $origin);
5064
}
5165
return $response;

0 commit comments

Comments
 (0)