From bfc4728792bf844ebf9883b4f2f13c7a2dfeadb0 Mon Sep 17 00:00:00 2001 From: Christopher Hertel Date: Tue, 12 May 2026 23:20:14 +0200 Subject: [PATCH] Fix case sensitivity for http header (#283) --- src/Client/Transport/HttpTransport.php | 2 +- .../Transport/Http/Middleware/AuthorizationMiddleware.php | 2 +- .../Transport/Http/Middleware/ClientRegistrationMiddleware.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Client/Transport/HttpTransport.php b/src/Client/Transport/HttpTransport.php index ca2ff44..d0eb140 100644 --- a/src/Client/Transport/HttpTransport.php +++ b/src/Client/Transport/HttpTransport.php @@ -122,7 +122,7 @@ class HttpTransport extends BaseTransport $this->logger->debug('Received session ID', ['session_id' => $this->sessionId]); } - $contentType = $response->getHeaderLine('Content-Type'); + $contentType = strtolower($response->getHeaderLine('Content-Type')); if (str_contains($contentType, 'text/event-stream')) { $this->activeStream = $response->getBody(); diff --git a/src/Server/Transport/Http/Middleware/AuthorizationMiddleware.php b/src/Server/Transport/Http/Middleware/AuthorizationMiddleware.php index 45c997e..d417598 100644 --- a/src/Server/Transport/Http/Middleware/AuthorizationMiddleware.php +++ b/src/Server/Transport/Http/Middleware/AuthorizationMiddleware.php @@ -166,7 +166,7 @@ final class AuthorizationMiddleware implements MiddlewareInterface private function parseBearerToken(string $authorization): ?string { - if (!preg_match('/^Bearer\\s+(.+)$/', $authorization, $matches)) { + if (!preg_match('/^Bearer\\s+(.+)$/i', $authorization, $matches)) { return null; } diff --git a/src/Server/Transport/Http/Middleware/ClientRegistrationMiddleware.php b/src/Server/Transport/Http/Middleware/ClientRegistrationMiddleware.php index 82a0b48..6b94e30 100644 --- a/src/Server/Transport/Http/Middleware/ClientRegistrationMiddleware.php +++ b/src/Server/Transport/Http/Middleware/ClientRegistrationMiddleware.php @@ -70,7 +70,7 @@ final class ClientRegistrationMiddleware implements MiddlewareInterface private function handleRegistration(ServerRequestInterface $request): ResponseInterface { $contentType = $request->getHeaderLine('Content-Type'); - if (!str_starts_with($contentType, 'application/json')) { + if (!str_starts_with(strtolower($contentType), 'application/json')) { return $this->jsonResponse(400, [ 'error' => 'invalid_client_metadata', 'error_description' => 'Content-Type must be application/json.',