Skip to content

Commit b84f87b

Browse files
committed
Update AuthCodeGrant
1 parent 1438092 commit b84f87b

File tree

4 files changed

+24
-3
lines changed

4 files changed

+24
-3
lines changed

src/Factories/Grant/AuthCodeGrantFactory.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@
1818

1919
use SimpleSAML\Module\oidc\Factories\Entities\AccessTokenEntityFactory;
2020
use SimpleSAML\Module\oidc\Factories\Entities\AuthCodeEntityFactory;
21+
use SimpleSAML\Module\oidc\Factories\Entities\RefreshTokenEntityFactory;
2122
use SimpleSAML\Module\oidc\ModuleConfig;
2223
use SimpleSAML\Module\oidc\Repositories\AccessTokenRepository;
2324
use SimpleSAML\Module\oidc\Repositories\AuthCodeRepository;
2425
use SimpleSAML\Module\oidc\Repositories\RefreshTokenRepository;
2526
use SimpleSAML\Module\oidc\Server\Grants\AuthCodeGrant;
2627
use SimpleSAML\Module\oidc\Server\RequestRules\RequestRulesManager;
28+
use SimpleSAML\Module\oidc\Services\LoggerService;
2729
use SimpleSAML\Module\oidc\Utils\RequestParamsResolver;
2830

2931
class AuthCodeGrantFactory
@@ -37,6 +39,8 @@ public function __construct(
3739
private readonly RequestParamsResolver $requestParamsResolver,
3840
private readonly AccessTokenEntityFactory $accessTokenEntityFactory,
3941
private readonly AuthCodeEntityFactory $authCodeEntityFactory,
42+
private readonly RefreshTokenEntityFactory $refreshTokenEntityFactory,
43+
private readonly LoggerService $logger,
4044
) {
4145
}
4246

@@ -54,6 +58,8 @@ public function build(): AuthCodeGrant
5458
$this->requestParamsResolver,
5559
$this->accessTokenEntityFactory,
5660
$this->authCodeEntityFactory,
61+
$this->refreshTokenEntityFactory,
62+
$this->logger,
5763
);
5864
$authCodeGrant->setRefreshTokenTTL($this->moduleConfig->getRefreshTokenDuration());
5965

src/Server/Grants/AuthCodeGrant.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use League\OAuth2\Server\ResponseTypes\ResponseTypeInterface;
2222
use LogicException;
2323
use Psr\Http\Message\ServerRequestInterface;
24+
use SimpleSAML\Module\oidc\Entities\Interfaces\AccessTokenEntityInterface;
2425
use SimpleSAML\Module\oidc\Entities\Interfaces\AuthCodeEntityInterface;
2526
use SimpleSAML\Module\oidc\Entities\Interfaces\RefreshTokenEntityInterface;
2627
use SimpleSAML\Module\oidc\Entities\UserEntity;
@@ -754,6 +755,9 @@ protected function issueRefreshToken(
754755
if (! is_a($this->refreshTokenRepository, RefreshTokenRepositoryInterface::class)) {
755756
throw OidcServerException::serverError('Unexpected refresh token repository entity type.');
756757
}
758+
if (! is_a($accessToken, AccessTokenEntityInterface::class)) {
759+
throw OidcServerException::serverError('Unexpected access token entity type.');
760+
}
757761

758762
$maxGenerationAttempts = self::MAX_RANDOM_TOKEN_GENERATION_ATTEMPTS;
759763

src/Services/Container.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,8 @@ public function __construct()
363363
$requestParamsResolver,
364364
$accessTokenEntityFactory,
365365
$authCodeEntityFactory,
366+
$refreshTokenEntityFactory,
367+
$loggerService,
366368
);
367369
$this->services[AuthCodeGrant::class] = $authCodeGrantFactory->build();
368370

tests/unit/src/Server/Grants/AuthCodeGrantTest.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,19 @@
55
namespace SimpleSAML\Test\Module\oidc\unit\Server\Grants;
66

77
use DateInterval;
8+
use PHPUnit\Framework\MockObject\MockObject;
89
use PHPUnit\Framework\MockObject\Stub;
910
use PHPUnit\Framework\TestCase;
1011
use SimpleSAML\Module\oidc\Factories\Entities\AccessTokenEntityFactory;
1112
use SimpleSAML\Module\oidc\Factories\Entities\AuthCodeEntityFactory;
13+
use SimpleSAML\Module\oidc\Factories\Entities\RefreshTokenEntityFactory;
1214
use SimpleSAML\Module\oidc\ModuleConfig;
1315
use SimpleSAML\Module\oidc\Repositories\Interfaces\AccessTokenRepositoryInterface;
1416
use SimpleSAML\Module\oidc\Repositories\Interfaces\AuthCodeRepositoryInterface;
1517
use SimpleSAML\Module\oidc\Repositories\Interfaces\RefreshTokenRepositoryInterface;
1618
use SimpleSAML\Module\oidc\Server\Grants\AuthCodeGrant;
1719
use SimpleSAML\Module\oidc\Server\RequestRules\RequestRulesManager;
20+
use SimpleSAML\Module\oidc\Services\LoggerService;
1821
use SimpleSAML\Module\oidc\Utils\RequestParamsResolver;
1922

2023
/**
@@ -30,7 +33,9 @@ class AuthCodeGrantTest extends TestCase
3033
protected Stub $moduleConfigStub;
3134
protected Stub $requestParamsResolverStub;
3235
protected Stub $accessTokenEntityFactoryStub;
33-
protected Stub $authCodeEntityFactory;
36+
protected Stub $authCodeEntityFactoryStub;
37+
protected Stub $refreshTokenEntityFactoryStub;
38+
protected MockObject $loggerMock;
3439

3540
/**
3641
* @throws \Exception
@@ -45,7 +50,9 @@ protected function setUp(): void
4550
$this->moduleConfigStub = $this->createStub(ModuleConfig::class);
4651
$this->requestParamsResolverStub = $this->createStub(RequestParamsResolver::class);
4752
$this->accessTokenEntityFactoryStub = $this->createStub(AccessTokenEntityFactory::class);
48-
$this->authCodeEntityFactory = $this->createStub(AuthcodeEntityFactory::class);
53+
$this->authCodeEntityFactoryStub = $this->createStub(AuthcodeEntityFactory::class);
54+
$this->refreshTokenEntityFactoryStub = $this->createStub(RefreshTokenEntityFactory::class);
55+
$this->loggerMock = $this->createMock(LoggerService::class);
4956
}
5057

5158
/**
@@ -63,7 +70,9 @@ public function testCanCreateInstance(): void
6370
$this->requestRulesManagerStub,
6471
$this->requestParamsResolverStub,
6572
$this->accessTokenEntityFactoryStub,
66-
$this->authCodeEntityFactory,
73+
$this->authCodeEntityFactoryStub,
74+
$this->refreshTokenEntityFactoryStub,
75+
$this->loggerMock,
6776
),
6877
);
6978
}

0 commit comments

Comments
 (0)