Fix scope loading in grants

This commit is contained in:
Lukáš Unger 2016-04-17 13:50:56 +02:00
parent 94a1c18fa9
commit 3904767873
3 changed files with 5 additions and 3 deletions

View File

@ -215,7 +215,7 @@ abstract class AbstractGrant implements GrantTypeInterface
foreach ($scopesList as $scopeItem) { foreach ($scopesList as $scopeItem) {
$scope = $this->scopeRepository->getScopeEntityByIdentifier($scopeItem); $scope = $this->scopeRepository->getScopeEntityByIdentifier($scopeItem);
if (($scope instanceof ScopeEntityInterface) === false) { if (!$scope instanceof ScopeEntityInterface) {
throw OAuthServerException::invalidScope($scopeItem, $redirectUri); throw OAuthServerException::invalidScope($scopeItem, $redirectUri);
} }

View File

@ -4,6 +4,7 @@ namespace League\OAuth2\Server\Grant;
use DateInterval; use DateInterval;
use League\OAuth2\Server\Entities\ClientEntityInterface; use League\OAuth2\Server\Entities\ClientEntityInterface;
use League\OAuth2\Server\Entities\ScopeEntityInterface;
use League\OAuth2\Server\Entities\UserEntityInterface; use League\OAuth2\Server\Entities\UserEntityInterface;
use League\OAuth2\Server\Exception\OAuthServerException; use League\OAuth2\Server\Exception\OAuthServerException;
use League\OAuth2\Server\Repositories\AuthCodeRepositoryInterface; use League\OAuth2\Server\Repositories\AuthCodeRepositoryInterface;
@ -90,7 +91,7 @@ class AuthCodeGrant extends AbstractAuthorizeGrant
foreach ($authCodePayload->scopes as $scopeId) { foreach ($authCodePayload->scopes as $scopeId) {
$scope = $this->scopeRepository->getScopeEntityByIdentifier($scopeId); $scope = $this->scopeRepository->getScopeEntityByIdentifier($scopeId);
if ($scope === false) { if (!$scope instanceof ScopeEntityInterface) {
// @codeCoverageIgnoreStart // @codeCoverageIgnoreStart
throw OAuthServerException::invalidScope($scopeId); throw OAuthServerException::invalidScope($scopeId);
// @codeCoverageIgnoreEnd // @codeCoverageIgnoreEnd

View File

@ -10,6 +10,7 @@
*/ */
namespace League\OAuth2\Server\Grant; namespace League\OAuth2\Server\Grant;
use League\OAuth2\Server\Entities\ScopeEntityInterface;
use League\OAuth2\Server\Exception\OAuthServerException; use League\OAuth2\Server\Exception\OAuthServerException;
use League\OAuth2\Server\Repositories\RefreshTokenRepositoryInterface; use League\OAuth2\Server\Repositories\RefreshTokenRepositoryInterface;
use League\OAuth2\Server\RequestEvent; use League\OAuth2\Server\RequestEvent;
@ -49,7 +50,7 @@ class RefreshTokenGrant extends AbstractGrant
$scopes = array_map(function ($scopeId) use ($client) { $scopes = array_map(function ($scopeId) use ($client) {
$scope = $this->scopeRepository->getScopeEntityByIdentifier($scopeId); $scope = $this->scopeRepository->getScopeEntityByIdentifier($scopeId);
if (!$scope) { if (!$scope instanceof ScopeEntityInterface) {
// @codeCoverageIgnoreStart // @codeCoverageIgnoreStart
throw OAuthServerException::invalidScope($scopeId); throw OAuthServerException::invalidScope($scopeId);
// @codeCoverageIgnoreEnd // @codeCoverageIgnoreEnd