|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright 2002-2020 the original author or authors.
|
|
|
+ * Copyright 2002-2021 the original author or authors.
|
|
|
*
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
* you may not use this file except in compliance with the License.
|
|
@@ -298,6 +298,24 @@ public class ClientRegistrationsTests {
|
|
|
.isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_BASIC);
|
|
|
}
|
|
|
|
|
|
+ // gh-9780
|
|
|
+ @Test
|
|
|
+ public void issuerWhenClientSecretBasicAuthMethodThenMethodIsBasic() throws Exception {
|
|
|
+ this.response.put("token_endpoint_auth_methods_supported", Arrays.asList("client_secret_basic"));
|
|
|
+ ClientRegistration registration = registration("").build();
|
|
|
+ assertThat(registration.getClientAuthenticationMethod())
|
|
|
+ .isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_BASIC);
|
|
|
+ }
|
|
|
+
|
|
|
+ // gh-9780
|
|
|
+ @Test
|
|
|
+ public void issuerWhenOAuth2ClientSecretBasicAuthMethodThenMethodIsBasic() throws Exception {
|
|
|
+ this.response.put("token_endpoint_auth_methods_supported", Arrays.asList("client_secret_basic"));
|
|
|
+ ClientRegistration registration = registrationOAuth2("", null).build();
|
|
|
+ assertThat(registration.getClientAuthenticationMethod())
|
|
|
+ .isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_BASIC);
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
public void issuerWhenTokenEndpointAuthMethodsPostThenMethodIsPost() throws Exception {
|
|
|
this.response.put("token_endpoint_auth_methods_supported", Arrays.asList("client_secret_post"));
|
|
@@ -314,6 +332,46 @@ public class ClientRegistrationsTests {
|
|
|
.isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_POST);
|
|
|
}
|
|
|
|
|
|
+ // gh-9780
|
|
|
+ @Test
|
|
|
+ public void issuerWhenClientSecretJwtAuthMethodThenMethodIsClientSecretBasic() throws Exception {
|
|
|
+ this.response.put("token_endpoint_auth_methods_supported", Arrays.asList("client_secret_jwt"));
|
|
|
+ ClientRegistration registration = registration("").build();
|
|
|
+ // The client_secret_basic auth method is still the default
|
|
|
+ assertThat(registration.getClientAuthenticationMethod())
|
|
|
+ .isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_BASIC);
|
|
|
+ }
|
|
|
+
|
|
|
+ // gh-9780
|
|
|
+ @Test
|
|
|
+ public void issuerWhenOAuth2ClientSecretJwtAuthMethodThenMethodIsClientSecretBasic() throws Exception {
|
|
|
+ this.response.put("token_endpoint_auth_methods_supported", Arrays.asList("client_secret_jwt"));
|
|
|
+ ClientRegistration registration = registrationOAuth2("", null).build();
|
|
|
+ // The client_secret_basic auth method is still the default
|
|
|
+ assertThat(registration.getClientAuthenticationMethod())
|
|
|
+ .isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_BASIC);
|
|
|
+ }
|
|
|
+
|
|
|
+ // gh-9780
|
|
|
+ @Test
|
|
|
+ public void issuerWhenPrivateKeyJwtAuthMethodThenMethodIsClientSecretBasic() throws Exception {
|
|
|
+ this.response.put("token_endpoint_auth_methods_supported", Arrays.asList("private_key_jwt"));
|
|
|
+ ClientRegistration registration = registration("").build();
|
|
|
+ // The client_secret_basic auth method is still the default
|
|
|
+ assertThat(registration.getClientAuthenticationMethod())
|
|
|
+ .isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_BASIC);
|
|
|
+ }
|
|
|
+
|
|
|
+ // gh-9780
|
|
|
+ @Test
|
|
|
+ public void issuerWhenOAuth2PrivateKeyJwtAuthMethodThenMethodIsClientSecretBasic() throws Exception {
|
|
|
+ this.response.put("token_endpoint_auth_methods_supported", Arrays.asList("private_key_jwt"));
|
|
|
+ ClientRegistration registration = registrationOAuth2("", null).build();
|
|
|
+ // The client_secret_basic auth method is still the default
|
|
|
+ assertThat(registration.getClientAuthenticationMethod())
|
|
|
+ .isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_BASIC);
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
public void issuerWhenTokenEndpointAuthMethodsNoneThenMethodIsNone() throws Exception {
|
|
|
this.response.put("token_endpoint_auth_methods_supported", Arrays.asList("none"));
|
|
@@ -328,32 +386,24 @@ public class ClientRegistrationsTests {
|
|
|
assertThat(registration.getClientAuthenticationMethod()).isEqualTo(ClientAuthenticationMethod.NONE);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * We currently only support client_secret_basic, so verify we have a meaningful error
|
|
|
- * until we add support.
|
|
|
- */
|
|
|
+ // gh-9780
|
|
|
@Test
|
|
|
- public void issuerWhenTokenEndpointAuthMethodsInvalidThenException() {
|
|
|
+ public void issuerWhenTlsClientAuthMethodThenSuccess() throws Exception {
|
|
|
this.response.put("token_endpoint_auth_methods_supported", Arrays.asList("tls_client_auth"));
|
|
|
- // @formatter:off
|
|
|
- assertThatIllegalArgumentException()
|
|
|
- .isThrownBy(() -> registration(""))
|
|
|
- .withMessageContaining("Only ClientAuthenticationMethod.CLIENT_SECRET_BASIC, ClientAuthenticationMethod.CLIENT_SECRET_POST and "
|
|
|
- + "ClientAuthenticationMethod.NONE are supported. The issuer \"" + this.issuer
|
|
|
- + "\" returned a configuration of [tls_client_auth]");
|
|
|
- // @formatter:on
|
|
|
+ ClientRegistration registration = registration("").build();
|
|
|
+ // The client_secret_basic auth method is still the default
|
|
|
+ assertThat(registration.getClientAuthenticationMethod())
|
|
|
+ .isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_BASIC);
|
|
|
}
|
|
|
|
|
|
+ // gh-9780
|
|
|
@Test
|
|
|
- public void issuerWhenOAuth2TokenEndpointAuthMethodsInvalidThenException() {
|
|
|
+ public void issuerWhenOAuth2TlsClientAuthMethodThenSuccess() throws Exception {
|
|
|
this.response.put("token_endpoint_auth_methods_supported", Arrays.asList("tls_client_auth"));
|
|
|
- // @formatter:off
|
|
|
- assertThatIllegalArgumentException()
|
|
|
- .isThrownBy(() -> registrationOAuth2("", null))
|
|
|
- .withMessageContaining("Only ClientAuthenticationMethod.CLIENT_SECRET_BASIC, ClientAuthenticationMethod.CLIENT_SECRET_POST and "
|
|
|
- + "ClientAuthenticationMethod.NONE are supported. The issuer \"" + this.issuer
|
|
|
- + "\" returned a configuration of [tls_client_auth]");
|
|
|
- // @formatter:on
|
|
|
+ ClientRegistration registration = registrationOAuth2("", null).build();
|
|
|
+ // The client_secret_basic auth method is still the default
|
|
|
+ assertThat(registration.getClientAuthenticationMethod())
|
|
|
+ .isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_BASIC);
|
|
|
}
|
|
|
|
|
|
@Test
|