Remove validation for unsupported grant types
Closes gh-9828
This commit is contained in:
parent
8de631d5c6
commit
9b05afdee8
|
|
@ -23,7 +23,6 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import com.nimbusds.oauth2.sdk.GrantType;
|
|
||||||
import com.nimbusds.oauth2.sdk.ParseException;
|
import com.nimbusds.oauth2.sdk.ParseException;
|
||||||
import com.nimbusds.oauth2.sdk.as.AuthorizationServerMetadata;
|
import com.nimbusds.oauth2.sdk.as.AuthorizationServerMetadata;
|
||||||
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
|
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
|
||||||
|
|
@ -242,13 +241,6 @@ public final class ClientRegistrations {
|
||||||
String name = URI.create(issuer).getHost();
|
String name = URI.create(issuer).getHost();
|
||||||
ClientAuthenticationMethod method = getClientAuthenticationMethod(issuer,
|
ClientAuthenticationMethod method = getClientAuthenticationMethod(issuer,
|
||||||
metadata.getTokenEndpointAuthMethods());
|
metadata.getTokenEndpointAuthMethods());
|
||||||
List<GrantType> grantTypes = metadata.getGrantTypes();
|
|
||||||
// If null, the default includes authorization_code
|
|
||||||
if (grantTypes != null && !grantTypes.contains(GrantType.AUTHORIZATION_CODE)) {
|
|
||||||
throw new IllegalArgumentException(
|
|
||||||
"Only AuthorizationGrantType.AUTHORIZATION_CODE is supported. The issuer \"" + issuer
|
|
||||||
+ "\" returned a configuration of " + grantTypes);
|
|
||||||
}
|
|
||||||
Map<String, Object> configurationMetadata = new LinkedHashMap<>(metadata.toJSONObject());
|
Map<String, Object> configurationMetadata = new LinkedHashMap<>(metadata.toJSONObject());
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
return ClientRegistration.withRegistrationId(name)
|
return ClientRegistration.withRegistrationId(name)
|
||||||
|
|
|
||||||
|
|
@ -240,24 +240,22 @@ public class ClientRegistrationsTests {
|
||||||
assertThat(registration.getAuthorizationGrantType()).isEqualTo(AuthorizationGrantType.AUTHORIZATION_CODE);
|
assertThat(registration.getAuthorizationGrantType()).isEqualTo(AuthorizationGrantType.AUTHORIZATION_CODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// gh-9828
|
||||||
* We currently only support authorization_code, so verify we have a meaningful error
|
|
||||||
* until we add support.
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void issuerWhenGrantTypesSupportedInvalidThenException() {
|
public void issuerWhenImplicitGrantTypeThenSuccess() throws Exception {
|
||||||
this.response.put("grant_types_supported", Arrays.asList("implicit"));
|
this.response.put("grant_types_supported", Arrays.asList("implicit"));
|
||||||
assertThatIllegalArgumentException().isThrownBy(() -> registration(""))
|
ClientRegistration registration = registration("").build();
|
||||||
.withMessageContaining("Only AuthorizationGrantType.AUTHORIZATION_CODE is supported. The issuer \""
|
// The authorization_code grant type is still the default
|
||||||
+ this.issuer + "\" returned a configuration of [implicit]");
|
assertThat(registration.getAuthorizationGrantType()).isEqualTo(AuthorizationGrantType.AUTHORIZATION_CODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// gh-9828
|
||||||
@Test
|
@Test
|
||||||
public void issuerWhenOAuth2GrantTypesSupportedInvalidThenException() {
|
public void issuerWhenOAuth2JwtBearerGrantTypeThenSuccess() throws Exception {
|
||||||
this.response.put("grant_types_supported", Arrays.asList("implicit"));
|
this.response.put("grant_types_supported", Arrays.asList("urn:ietf:params:oauth:grant-type:jwt-bearer"));
|
||||||
assertThatIllegalArgumentException().isThrownBy(() -> registrationOAuth2("", null))
|
ClientRegistration registration = registrationOAuth2("", null).build();
|
||||||
.withMessageContaining("Only AuthorizationGrantType.AUTHORIZATION_CODE is supported. The issuer \""
|
// The authorization_code grant type is still the default
|
||||||
+ this.issuer + "\" returned a configuration of [implicit]");
|
assertThat(registration.getAuthorizationGrantType()).isEqualTo(AuthorizationGrantType.AUTHORIZATION_CODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue