@ -37,10 +37,10 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
@@ -37,10 +37,10 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
public class OidcProviderConfigurationTests {
private final OidcProviderConfiguration . Builder minimalConfigurationBuilder =
OidcProviderConfiguration . builder ( )
. issuer ( "https://example.com/issuer1 " )
. authorizationEndpoint ( "https://example.com/issuer1/ oauth2/authorize" )
. tokenEndpoint ( "https://example.com/issuer1/ oauth2/token" )
. jwkSetUrl ( "https://example.com/issuer1/ oauth2/jwks" )
. issuer ( "https://example.com" )
. authorizationEndpoint ( "https://example.com/oauth2/authorize" )
. tokenEndpoint ( "https://example.com/oauth2/token" )
. jwkSetUrl ( "https://example.com/oauth2/jwks" )
. scope ( "openid" )
. responseType ( "code" )
. subjectType ( "public" )
@ -49,56 +49,56 @@ public class OidcProviderConfigurationTests {
@@ -49,56 +49,56 @@ public class OidcProviderConfigurationTests {
@Test
public void buildWhenAllRequiredClaimsAndAdditionalClaimsThenCreated ( ) {
OidcProviderConfiguration providerConfiguration = OidcProviderConfiguration . builder ( )
. issuer ( "https://example.com/issuer1 " )
. authorizationEndpoint ( "https://example.com/issuer1/ oauth2/authorize" )
. tokenEndpoint ( "https://example.com/issuer1/ oauth2/token" )
. jwkSetUrl ( "https://example.com/issuer1/ oauth2/jwks" )
. issuer ( "https://example.com" )
. authorizationEndpoint ( "https://example.com/oauth2/authorize" )
. tokenEndpoint ( "https://example.com/oauth2/token" )
. jwkSetUrl ( "https://example.com/oauth2/jwks" )
. scope ( "openid" )
. responseType ( "code" )
. grantType ( "authorization_code" )
. grantType ( "client_credentials" )
. subjectType ( "public" )
. idTokenSigningAlgorithm ( "RS256" )
. userInfoEndpoint ( "https://example.com/issuer1/ userinfo" )
. userInfoEndpoint ( "https://example.com/userinfo" )
. tokenEndpointAuthenticationMethod ( ClientAuthenticationMethod . CLIENT_SECRET_BASIC . getValue ( ) )
. clientRegistrationEndpoint ( "https://example.com/issuer1/ connect/register" )
. endSessionEndpoint ( "https://example.com/issuer1/ connect/logout" )
. clientRegistrationEndpoint ( "https://example.com/connect/register" )
. endSessionEndpoint ( "https://example.com/connect/logout" )
. claim ( "a-claim" , "a-value" )
. build ( ) ;
assertThat ( providerConfiguration . getIssuer ( ) ) . isEqualTo ( url ( "https://example.com/issuer1 " ) ) ;
assertThat ( providerConfiguration . getAuthorizationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/authorize" ) ) ;
assertThat ( providerConfiguration . getTokenEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/token" ) ) ;
assertThat ( providerConfiguration . getJwkSetUrl ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/jwks" ) ) ;
assertThat ( providerConfiguration . getIssuer ( ) ) . isEqualTo ( url ( "https://example.com" ) ) ;
assertThat ( providerConfiguration . getAuthorizationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/authorize" ) ) ;
assertThat ( providerConfiguration . getTokenEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/token" ) ) ;
assertThat ( providerConfiguration . getJwkSetUrl ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/jwks" ) ) ;
assertThat ( providerConfiguration . getScopes ( ) ) . containsExactly ( "openid" ) ;
assertThat ( providerConfiguration . getResponseTypes ( ) ) . containsExactly ( "code" ) ;
assertThat ( providerConfiguration . getGrantTypes ( ) ) . containsExactlyInAnyOrder ( "authorization_code" , "client_credentials" ) ;
assertThat ( providerConfiguration . getSubjectTypes ( ) ) . containsExactly ( "public" ) ;
assertThat ( providerConfiguration . getIdTokenSigningAlgorithms ( ) ) . containsExactly ( "RS256" ) ;
assertThat ( providerConfiguration . getUserInfoEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ userinfo" ) ) ;
assertThat ( providerConfiguration . getUserInfoEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/userinfo" ) ) ;
assertThat ( providerConfiguration . getTokenEndpointAuthenticationMethods ( ) ) . containsExactly ( ClientAuthenticationMethod . CLIENT_SECRET_BASIC . getValue ( ) ) ;
assertThat ( providerConfiguration . getClientRegistrationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ connect/register" ) ) ;
assertThat ( providerConfiguration . getEndSessionEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ connect/logout" ) ) ;
assertThat ( providerConfiguration . getClientRegistrationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/connect/register" ) ) ;
assertThat ( providerConfiguration . getEndSessionEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/connect/logout" ) ) ;
assertThat ( providerConfiguration . < String > getClaim ( "a-claim" ) ) . isEqualTo ( "a-value" ) ;
}
@Test
public void buildWhenOnlyRequiredClaimsThenCreated ( ) {
OidcProviderConfiguration providerConfiguration = OidcProviderConfiguration . builder ( )
. issuer ( "https://example.com/issuer1 " )
. authorizationEndpoint ( "https://example.com/issuer1/ oauth2/authorize" )
. tokenEndpoint ( "https://example.com/issuer1/ oauth2/token" )
. jwkSetUrl ( "https://example.com/issuer1/ oauth2/jwks" )
. issuer ( "https://example.com" )
. authorizationEndpoint ( "https://example.com/oauth2/authorize" )
. tokenEndpoint ( "https://example.com/oauth2/token" )
. jwkSetUrl ( "https://example.com/oauth2/jwks" )
. scope ( "openid" )
. responseType ( "code" )
. subjectType ( "public" )
. idTokenSigningAlgorithm ( "RS256" )
. build ( ) ;
assertThat ( providerConfiguration . getIssuer ( ) ) . isEqualTo ( url ( "https://example.com/issuer1 " ) ) ;
assertThat ( providerConfiguration . getAuthorizationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/authorize" ) ) ;
assertThat ( providerConfiguration . getTokenEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/token" ) ) ;
assertThat ( providerConfiguration . getJwkSetUrl ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/jwks" ) ) ;
assertThat ( providerConfiguration . getIssuer ( ) ) . isEqualTo ( url ( "https://example.com" ) ) ;
assertThat ( providerConfiguration . getAuthorizationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/authorize" ) ) ;
assertThat ( providerConfiguration . getTokenEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/token" ) ) ;
assertThat ( providerConfiguration . getJwkSetUrl ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/jwks" ) ) ;
assertThat ( providerConfiguration . getScopes ( ) ) . containsExactly ( "openid" ) ;
assertThat ( providerConfiguration . getResponseTypes ( ) ) . containsExactly ( "code" ) ;
assertThat ( providerConfiguration . getGrantTypes ( ) ) . isNull ( ) ;
@ -110,68 +110,68 @@ public class OidcProviderConfigurationTests {
@@ -110,68 +110,68 @@ public class OidcProviderConfigurationTests {
@Test
public void buildWhenClaimsProvidedThenCreated ( ) {
Map < String , Object > claims = new HashMap < > ( ) ;
claims . put ( OidcProviderMetadataClaimNames . ISSUER , "https://example.com/issuer1 " ) ;
claims . put ( OidcProviderMetadataClaimNames . AUTHORIZATION_ENDPOINT , "https://example.com/issuer1/ oauth2/authorize" ) ;
claims . put ( OidcProviderMetadataClaimNames . TOKEN_ENDPOINT , "https://example.com/issuer1/ oauth2/token" ) ;
claims . put ( OidcProviderMetadataClaimNames . JWKS_URI , "https://example.com/issuer1/ oauth2/jwks" ) ;
claims . put ( OidcProviderMetadataClaimNames . ISSUER , "https://example.com" ) ;
claims . put ( OidcProviderMetadataClaimNames . AUTHORIZATION_ENDPOINT , "https://example.com/oauth2/authorize" ) ;
claims . put ( OidcProviderMetadataClaimNames . TOKEN_ENDPOINT , "https://example.com/oauth2/token" ) ;
claims . put ( OidcProviderMetadataClaimNames . JWKS_URI , "https://example.com/oauth2/jwks" ) ;
claims . put ( OidcProviderMetadataClaimNames . SCOPES_SUPPORTED , Collections . singletonList ( "openid" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . RESPONSE_TYPES_SUPPORTED , Collections . singletonList ( "code" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . SUBJECT_TYPES_SUPPORTED , Collections . singletonList ( "public" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . ID_TOKEN_SIGNING_ALG_VALUES_SUPPORTED , Collections . singletonList ( "RS256" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . USER_INFO_ENDPOINT , "https://example.com/issuer1/ userinfo" ) ;
claims . put ( OidcProviderMetadataClaimNames . REGISTRATION_ENDPOINT , "https://example.com/issuer1/ connect/register" ) ;
claims . put ( OidcProviderMetadataClaimNames . END_SESSION_ENDPOINT , "https://example.com/issuer1/ connect/logout" ) ;
claims . put ( OidcProviderMetadataClaimNames . USER_INFO_ENDPOINT , "https://example.com/userinfo" ) ;
claims . put ( OidcProviderMetadataClaimNames . REGISTRATION_ENDPOINT , "https://example.com/connect/register" ) ;
claims . put ( OidcProviderMetadataClaimNames . END_SESSION_ENDPOINT , "https://example.com/connect/logout" ) ;
claims . put ( "some-claim" , "some-value" ) ;
OidcProviderConfiguration providerConfiguration = OidcProviderConfiguration . withClaims ( claims ) . build ( ) ;
assertThat ( providerConfiguration . getIssuer ( ) ) . isEqualTo ( url ( "https://example.com/issuer1 " ) ) ;
assertThat ( providerConfiguration . getAuthorizationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/authorize" ) ) ;
assertThat ( providerConfiguration . getTokenEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/token" ) ) ;
assertThat ( providerConfiguration . getJwkSetUrl ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/jwks" ) ) ;
assertThat ( providerConfiguration . getIssuer ( ) ) . isEqualTo ( url ( "https://example.com" ) ) ;
assertThat ( providerConfiguration . getAuthorizationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/authorize" ) ) ;
assertThat ( providerConfiguration . getTokenEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/token" ) ) ;
assertThat ( providerConfiguration . getJwkSetUrl ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/jwks" ) ) ;
assertThat ( providerConfiguration . getScopes ( ) ) . containsExactly ( "openid" ) ;
assertThat ( providerConfiguration . getResponseTypes ( ) ) . containsExactly ( "code" ) ;
assertThat ( providerConfiguration . getGrantTypes ( ) ) . isNull ( ) ;
assertThat ( providerConfiguration . getSubjectTypes ( ) ) . containsExactly ( "public" ) ;
assertThat ( providerConfiguration . getIdTokenSigningAlgorithms ( ) ) . containsExactly ( "RS256" ) ;
assertThat ( providerConfiguration . getUserInfoEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ userinfo" ) ) ;
assertThat ( providerConfiguration . getUserInfoEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/userinfo" ) ) ;
assertThat ( providerConfiguration . getTokenEndpointAuthenticationMethods ( ) ) . isNull ( ) ;
assertThat ( providerConfiguration . getClientRegistrationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ connect/register" ) ) ;
assertThat ( providerConfiguration . getEndSessionEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ connect/logout" ) ) ;
assertThat ( providerConfiguration . getClientRegistrationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/connect/register" ) ) ;
assertThat ( providerConfiguration . getEndSessionEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/connect/logout" ) ) ;
assertThat ( providerConfiguration . < String > getClaim ( "some-claim" ) ) . isEqualTo ( "some-value" ) ;
}
@Test
public void buildWhenClaimsProvidedWithUrlsThenCreated ( ) {
Map < String , Object > claims = new HashMap < > ( ) ;
claims . put ( OidcProviderMetadataClaimNames . ISSUER , url ( "https://example.com/issuer1 " ) ) ;
claims . put ( OidcProviderMetadataClaimNames . AUTHORIZATION_ENDPOINT , url ( "https://example.com/issuer1/ oauth2/authorize" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . TOKEN_ENDPOINT , url ( "https://example.com/issuer1/ oauth2/token" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . JWKS_URI , url ( "https://example.com/issuer1/ oauth2/jwks" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . ISSUER , url ( "https://example.com" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . AUTHORIZATION_ENDPOINT , url ( "https://example.com/oauth2/authorize" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . TOKEN_ENDPOINT , url ( "https://example.com/oauth2/token" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . JWKS_URI , url ( "https://example.com/oauth2/jwks" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . SCOPES_SUPPORTED , Collections . singletonList ( "openid" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . RESPONSE_TYPES_SUPPORTED , Collections . singletonList ( "code" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . SUBJECT_TYPES_SUPPORTED , Collections . singletonList ( "public" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . ID_TOKEN_SIGNING_ALG_VALUES_SUPPORTED , Collections . singletonList ( "RS256" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . USER_INFO_ENDPOINT , url ( "https://example.com/issuer1/ userinfo" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . REGISTRATION_ENDPOINT , url ( "https://example.com/issuer1/ connect/register" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . END_SESSION_ENDPOINT , url ( "https://example.com/issuer1/ connect/logout" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . USER_INFO_ENDPOINT , url ( "https://example.com/userinfo" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . REGISTRATION_ENDPOINT , url ( "https://example.com/connect/register" ) ) ;
claims . put ( OidcProviderMetadataClaimNames . END_SESSION_ENDPOINT , url ( "https://example.com/connect/logout" ) ) ;
claims . put ( "some-claim" , "some-value" ) ;
OidcProviderConfiguration providerConfiguration = OidcProviderConfiguration . withClaims ( claims ) . build ( ) ;
assertThat ( providerConfiguration . getIssuer ( ) ) . isEqualTo ( url ( "https://example.com/issuer1 " ) ) ;
assertThat ( providerConfiguration . getAuthorizationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/authorize" ) ) ;
assertThat ( providerConfiguration . getTokenEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/token" ) ) ;
assertThat ( providerConfiguration . getJwkSetUrl ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ oauth2/jwks" ) ) ;
assertThat ( providerConfiguration . getIssuer ( ) ) . isEqualTo ( url ( "https://example.com" ) ) ;
assertThat ( providerConfiguration . getAuthorizationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/authorize" ) ) ;
assertThat ( providerConfiguration . getTokenEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/token" ) ) ;
assertThat ( providerConfiguration . getJwkSetUrl ( ) ) . isEqualTo ( url ( "https://example.com/oauth2/jwks" ) ) ;
assertThat ( providerConfiguration . getScopes ( ) ) . containsExactly ( "openid" ) ;
assertThat ( providerConfiguration . getResponseTypes ( ) ) . containsExactly ( "code" ) ;
assertThat ( providerConfiguration . getGrantTypes ( ) ) . isNull ( ) ;
assertThat ( providerConfiguration . getSubjectTypes ( ) ) . containsExactly ( "public" ) ;
assertThat ( providerConfiguration . getIdTokenSigningAlgorithms ( ) ) . containsExactly ( "RS256" ) ;
assertThat ( providerConfiguration . getUserInfoEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ userinfo" ) ) ;
assertThat ( providerConfiguration . getUserInfoEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/userinfo" ) ) ;
assertThat ( providerConfiguration . getTokenEndpointAuthenticationMethods ( ) ) . isNull ( ) ;
assertThat ( providerConfiguration . getClientRegistrationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ connect/register" ) ) ;
assertThat ( providerConfiguration . getEndSessionEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/issuer1/ connect/logout" ) ) ;
assertThat ( providerConfiguration . getClientRegistrationEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/connect/register" ) ) ;
assertThat ( providerConfiguration . getEndSessionEndpoint ( ) ) . isEqualTo ( url ( "https://example.com/connect/logout" ) ) ;
assertThat ( providerConfiguration . < String > getClaim ( "some-claim" ) ) . isEqualTo ( "some-value" ) ;
}