Updated cross domain middleware so that it always returns success response on OPTIONS requests

This commit is contained in:
Alejandro Celaya
2020-01-12 10:58:00 +01:00
parent 70f1db4e94
commit 6bc30542a0
2 changed files with 45 additions and 8 deletions

View File

@@ -10,8 +10,10 @@ use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Shlinkio\Shlink\Rest\Authentication;
use Zend\Diactoros\Response\EmptyResponse;;
use Zend\Expressive\Router\RouteResult;
use function array_merge;
use function implode;
class CrossDomainMiddleware implements MiddlewareInterface, RequestMethodInterface
@@ -54,10 +56,7 @@ class CrossDomainMiddleware implements MiddlewareInterface, RequestMethodInterfa
'Access-Control-Allow-Headers' => $request->getHeaderLine('Access-Control-Request-Headers'),
];
foreach ($corsHeaders as $key => $value) {
$response = $response->withHeader($key, $value);
}
return $response;
// Options requests should always be empty and have a 204 status code
return EmptyResponse::withHeaders(array_merge($response->getHeaders(), $corsHeaders));
}
}