Skip to content

Commit 9cf72d3

Browse files
committed
Change Server config to provide defaults for generic required values.
1 parent 37095ed commit 9cf72d3

2 files changed

Lines changed: 18 additions & 9 deletions

File tree

src/Config/Server.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ final public function getRequired() : array
5454

5555
final public function __construct(array $data, bool $strict = false)
5656
{
57+
$data = array_merge([
58+
OidcMeta::ID_TOKEN_SIGNING_ALG_VALUES_SUPPORTED => ['RS256'],
59+
OidcMeta::RESPONSE_TYPES_SUPPORTED => \Pdsinterop\Solid\Auth\Enum\OAuth2\ResponseType::CODE_ID_TOKEN_TOKEN,
60+
OidcMeta::SUBJECT_TYPES_SUPPORTED => ['public'],
61+
], $data);
62+
5763
$this->data = array_filter($data, [OidcMeta::class, 'has'], ARRAY_FILTER_USE_KEY);
5864
$this->strict = $strict;
5965
}

tests/unit/Config/ServerTest.php

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ final public function testServerConfigShouldBeValidWhenGivenAllRequiredPropertie
6666
final public function testServerConfigShouldComplainWhenSerializedWithRequiredKeysMissing() : void
6767
{
6868
$this->expectException(LogicException::class);
69-
$this->expectExceptionMessage('Required properties have not been set: authorization_endpoint, id_token_signing_alg_values_supported, issuer, jwks_uri, response_types_supported, subject_types_supported');
69+
$this->expectExceptionMessage('Required properties have not been set: authorization_endpoint, issuer, jwks_uri');
7070

7171
$server = new Server([]);
7272

@@ -75,8 +75,11 @@ final public function testServerConfigShouldComplainWhenSerializedWithRequiredKe
7575

7676
final public function testServerConfigShouldReturnArrayWhenSerializedWithRequiredKeysPresent() : array
7777
{
78-
$required = (new Server([]))->getRequired();
79-
$data = array_combine($required, $required);
78+
$data = [
79+
OidcMeta::AUTHORIZATION_ENDPOINT => 'https://server/authorize',
80+
OidcMeta::ISSUER => 'https://server/identifier',
81+
OidcMeta::JWKS_URI => 'https://server/jwk'
82+
];
8083

8184
$server = new Server($data);
8285

@@ -93,12 +96,12 @@ final public function testServerConfigShouldReturnArrayWhenSerializedWithRequire
9396
final public function testServerConfigShouldReturnExpectedValuesWhenSerializedWithRequiredKeysPresent(array $actual)
9497
{
9598
self::assertEquals($actual, [
96-
'authorization_endpoint' => 'authorization_endpoint',
97-
'id_token_signing_alg_values_supported' => 'id_token_signing_alg_values_supported',
98-
'issuer' => 'issuer',
99-
'jwks_uri' => 'jwks_uri',
100-
'response_types_supported' => 'response_types_supported',
101-
'subject_types_supported' => 'subject_types_supported',
99+
'authorization_endpoint' => 'https://server/authorize',
100+
'id_token_signing_alg_values_supported' => ['RS256'],
101+
'issuer' => 'https://server/identifier',
102+
'jwks_uri' => 'https://server/jwk',
103+
'response_types_supported' => ['code', 'id_token', 'token'],
104+
'subject_types_supported' => ['public'],
102105
]);
103106
}
104107
}

0 commit comments

Comments
 (0)