mirror of
https://github.com/elyby/oauth2-server.git
synced 2025-01-12 06:42:04 +05:30
Change to store code challenge and method whenever sent for PKCE
This commit is contained in:
parent
dc2a048b95
commit
f49cc65c13
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user