From 4f68494614e599911d5dd90ed4695e78b0f4e9ef Mon Sep 17 00:00:00 2001 From: alexmerlin Date: Fri, 28 Nov 2025 07:57:20 +0200 Subject: [PATCH] Issue #474: Throw BadException on MalformedRequestBodyException Signed-off-by: alexmerlin --- config/pipeline.php | 2 ++ .../MalformedRequestBodyMiddleware.php | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/App/src/Middleware/MalformedRequestBodyMiddleware.php diff --git a/config/pipeline.php b/config/pipeline.php index da98ec7..8467ee4 100644 --- a/config/pipeline.php +++ b/config/pipeline.php @@ -7,6 +7,7 @@ use Api\App\Middleware\AuthorizationMiddleware; use Api\App\Middleware\ContentNegotiationMiddleware; use Api\App\Middleware\DeprecationMiddleware; +use Api\App\Middleware\MalformedRequestBodyMiddleware; use Api\App\Middleware\ResourceProviderMiddleware; use Dot\ResponseHeader\Middleware\ResponseHeaderMiddleware; use Mezzio\Application; @@ -28,6 +29,7 @@ // - return ProblemDetails response $app->pipe(ProblemDetailsMiddleware::class); + $app->pipe(MalformedRequestBodyMiddleware::class); $app->pipe(BodyParamsMiddleware::class); $app->pipe(ServerUrlMiddleware::class); $app->pipe(CorsMiddleware::class); diff --git a/src/App/src/Middleware/MalformedRequestBodyMiddleware.php b/src/App/src/Middleware/MalformedRequestBodyMiddleware.php new file mode 100644 index 0000000..7434e15 --- /dev/null +++ b/src/App/src/Middleware/MalformedRequestBodyMiddleware.php @@ -0,0 +1,31 @@ +handle($request); + } catch (MalformedRequestBodyException $exception) { + throw BadRequestException::create( + $exception->getMessage() ?: 'Error when parsing JSON request body: Syntax error' + ); + } + } +}