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); | ||||
|  | ||||
|         if ($this->enableCodeExchangeProof === true) { | ||||
| 	$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'); | ||||
|  | ||||
|             if (in_array($codeChallengeMethod, ['plain', 'S256'], true) === false) { | ||||
|   | ||||
| @@ -212,7 +212,7 @@ class AuthCodeGrantTest extends TestCase | ||||
|             $this->getMockBuilder(RefreshTokenRepositoryInterface::class)->getMock(), | ||||
|             new \DateInterval('PT10M') | ||||
|         ); | ||||
|         $grant->enableCodeExchangeProof(); | ||||
|  | ||||
|         $grant->setClientRepository($clientRepositoryMock); | ||||
|  | ||||
|         $request = new ServerRequest( | ||||
| @@ -444,49 +444,6 @@ class AuthCodeGrantTest extends TestCase | ||||
|         $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 | ||||
|      * @expectedExceptionCode 3 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user