mirror of
				https://github.com/elyby/oauth2-server.git
				synced 2025-05-31 14:12:07 +05:30 
			
		
		
		
	Change to store code challenge and method whenever sent for PKCE
This commit is contained in:
		| @@ -271,12 +271,9 @@ class AuthCodeGrant extends AbstractAuthorizeGrant | |||||||
|  |  | ||||||
|         $authorizationRequest->setScopes($scopes); |         $authorizationRequest->setScopes($scopes); | ||||||
|  |  | ||||||
|         if ($this->enableCodeExchangeProof === true) { |  | ||||||
| 	$codeChallenge = $this->getQueryStringParameter('code_challenge', $request); | 	$codeChallenge = $this->getQueryStringParameter('code_challenge', $request); | ||||||
|             if ($codeChallenge === null) { |  | ||||||
|                 throw OAuthServerException::invalidRequest('code_challenge'); |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|  |         if ($codeChallenge !== null) { | ||||||
|             $codeChallengeMethod = $this->getQueryStringParameter('code_challenge_method', $request, 'plain'); |             $codeChallengeMethod = $this->getQueryStringParameter('code_challenge_method', $request, 'plain'); | ||||||
|  |  | ||||||
|             if (in_array($codeChallengeMethod, ['plain', 'S256'], true) === false) { |             if (in_array($codeChallengeMethod, ['plain', 'S256'], true) === false) { | ||||||
|   | |||||||
| @@ -212,7 +212,7 @@ class AuthCodeGrantTest extends TestCase | |||||||
|             $this->getMockBuilder(RefreshTokenRepositoryInterface::class)->getMock(), |             $this->getMockBuilder(RefreshTokenRepositoryInterface::class)->getMock(), | ||||||
|             new \DateInterval('PT10M') |             new \DateInterval('PT10M') | ||||||
|         ); |         ); | ||||||
|         $grant->enableCodeExchangeProof(); |  | ||||||
|         $grant->setClientRepository($clientRepositoryMock); |         $grant->setClientRepository($clientRepositoryMock); | ||||||
|  |  | ||||||
|         $request = new ServerRequest( |         $request = new ServerRequest( | ||||||
| @@ -444,49 +444,6 @@ class AuthCodeGrantTest extends TestCase | |||||||
|         $grant->validateAuthorizationRequest($request); |         $grant->validateAuthorizationRequest($request); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * @expectedException \League\OAuth2\Server\Exception\OAuthServerException |  | ||||||
|      * @expectedExceptionCode 3 |  | ||||||
|      */ |  | ||||||
|     public function testValidateAuthorizationRequestMissingCodeChallenge() |  | ||||||
|     { |  | ||||||
|         $client = new ClientEntity(); |  | ||||||
|         $client->setRedirectUri('http://foo/bar'); |  | ||||||
|         $clientRepositoryMock = $this->getMockBuilder(ClientRepositoryInterface::class)->getMock(); |  | ||||||
|         $clientRepositoryMock->method('getClientEntity')->willReturn($client); |  | ||||||
|  |  | ||||||
|         $scope = new ScopeEntity(); |  | ||||||
|         $scopeRepositoryMock = $this->getMockBuilder(ScopeRepositoryInterface::class)->getMock(); |  | ||||||
|         $scopeRepositoryMock->method('getScopeEntityByIdentifier')->willReturn($scope); |  | ||||||
|  |  | ||||||
|         $grant = new AuthCodeGrant( |  | ||||||
|             $this->getMockBuilder(AuthCodeRepositoryInterface::class)->getMock(), |  | ||||||
|             $this->getMockBuilder(RefreshTokenRepositoryInterface::class)->getMock(), |  | ||||||
|             new \DateInterval('PT10M') |  | ||||||
|         ); |  | ||||||
|         $grant->enableCodeExchangeProof(); |  | ||||||
|         $grant->setClientRepository($clientRepositoryMock); |  | ||||||
|         $grant->setScopeRepository($scopeRepositoryMock); |  | ||||||
|         $grant->setDefaultScope(self::DEFAULT_SCOPE); |  | ||||||
|  |  | ||||||
|         $request = new ServerRequest( |  | ||||||
|             [], |  | ||||||
|             [], |  | ||||||
|             null, |  | ||||||
|             null, |  | ||||||
|             'php://input', |  | ||||||
|             [], |  | ||||||
|             [], |  | ||||||
|             [ |  | ||||||
|                 'response_type' => 'code', |  | ||||||
|                 'client_id'     => 'foo', |  | ||||||
|                 'redirect_uri'  => 'http://foo/bar', |  | ||||||
|             ] |  | ||||||
|         ); |  | ||||||
|  |  | ||||||
|         $grant->validateAuthorizationRequest($request); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * @expectedException \League\OAuth2\Server\Exception\OAuthServerException |      * @expectedException \League\OAuth2\Server\Exception\OAuthServerException | ||||||
|      * @expectedExceptionCode 3 |      * @expectedExceptionCode 3 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user