From b88198a9a4d0f58eaf62918564973d75f8ddb2d2 Mon Sep 17 00:00:00 2001 From: Marc Bennewitz Date: Fri, 29 Mar 2019 16:00:26 +0100 Subject: [PATCH] spec compliant 'error_description' but keep 'message' for BC --- src/Exception/OAuthServerException.php | 14 +++++++++++--- .../AuthorizationServerMiddlewareTest.php | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Exception/OAuthServerException.php b/src/Exception/OAuthServerException.php index 28cc20be..bb448767 100644 --- a/src/Exception/OAuthServerException.php +++ b/src/Exception/OAuthServerException.php @@ -59,8 +59,8 @@ class OAuthServerException extends Exception $this->hint = $hint; $this->redirectUri = $redirectUri; $this->payload = [ - 'error' => $errorType, - 'message' => $message, + 'error' => $errorType, + 'error_description' => $message, ]; if ($hint !== null) { $this->payload['hint'] = $hint; @@ -74,7 +74,15 @@ class OAuthServerException extends Exception */ public function getPayload() { - return $this->payload; + $payload = $this->payload; + + // The "message" property is deprecated and replaced by "error_description" + // TODO: remove "message" property + if (isset($payload['error_description']) && !isset($payload['message'])) { + $payload['message'] = $payload['error_description']; + } + + return $payload; } /** diff --git a/tests/Middleware/AuthorizationServerMiddlewareTest.php b/tests/Middleware/AuthorizationServerMiddlewareTest.php index 99118736..fb11c483 100644 --- a/tests/Middleware/AuthorizationServerMiddlewareTest.php +++ b/tests/Middleware/AuthorizationServerMiddlewareTest.php @@ -104,7 +104,7 @@ class AuthorizationServerMiddlewareTest extends TestCase $response = $exception->generateHttpResponse(new Response()); $this->assertEquals(302, $response->getStatusCode()); - $this->assertEquals('http://foo/bar?error=invalid_scope&message=The+requested+scope+is+invalid%2C+unknown%2C+or+malformed&hint=Check+the+%60test%60+scope', + $this->assertEquals('http://foo/bar?error=invalid_scope&error_description=The+requested+scope+is+invalid%2C+unknown%2C+or+malformed&hint=Check+the+%60test%60+scope&message=The+requested+scope+is+invalid%2C+unknown%2C+or+malformed', $response->getHeader('location')[0]); } @@ -114,7 +114,7 @@ class AuthorizationServerMiddlewareTest extends TestCase $response = $exception->generateHttpResponse(new Response(), true); $this->assertEquals(302, $response->getStatusCode()); - $this->assertEquals('http://foo/bar#error=invalid_scope&message=The+requested+scope+is+invalid%2C+unknown%2C+or+malformed&hint=Check+the+%60test%60+scope', + $this->assertEquals('http://foo/bar#error=invalid_scope&error_description=The+requested+scope+is+invalid%2C+unknown%2C+or+malformed&hint=Check+the+%60test%60+scope&message=The+requested+scope+is+invalid%2C+unknown%2C+or+malformed', $response->getHeader('location')[0]); } }