@Override public int hashCode() { return this.getValue().hashCode(); } }
@Test(expected = IllegalArgumentException.class) public void constructorWhenValueIsNullThenThrowIllegalArgumentException() { new ClientAuthenticationMethod(null); }
static HttpHeaders getTokenRequestHeaders(ClientRegistration clientRegistration) { HttpHeaders headers = new HttpHeaders(); headers.addAll(DEFAULT_TOKEN_REQUEST_HEADERS); if (ClientAuthenticationMethod.BASIC.equals(clientRegistration.getClientAuthenticationMethod())) { headers.setBasicAuth(clientRegistration.getClientId(), clientRegistration.getClientSecret()); } return headers; }
/** * Returns a {@link MultiValueMap} of the form parameters used for the Access Token Request body. * * @param clientCredentialsGrantRequest the client credentials grant request * @return a {@link MultiValueMap} of the form parameters used for the Access Token Request body */ private MultiValueMap<String, String> buildFormParameters(OAuth2ClientCredentialsGrantRequest clientCredentialsGrantRequest) { ClientRegistration clientRegistration = clientCredentialsGrantRequest.getClientRegistration(); MultiValueMap<String, String> formParameters = new LinkedMultiValueMap<>(); formParameters.add(OAuth2ParameterNames.GRANT_TYPE, clientCredentialsGrantRequest.getGrantType().getValue()); if (!CollectionUtils.isEmpty(clientRegistration.getScopes())) { formParameters.add(OAuth2ParameterNames.SCOPE, StringUtils.collectionToDelimitedString(clientRegistration.getScopes(), " ")); } if (ClientAuthenticationMethod.POST.equals(clientRegistration.getClientAuthenticationMethod())) { formParameters.add(OAuth2ParameterNames.CLIENT_ID, clientRegistration.getClientId()); formParameters.add(OAuth2ParameterNames.CLIENT_SECRET, clientRegistration.getClientSecret()); } return formParameters; } }
private ClientAuthenticationMethod toClientAuthenticationMethod(OidcClient oidcClient) { ClientAuthenticationMethod clientAuthenticationMethod; String oidcClientClientAuthenticationMethod = oidcClient.getClientAuthenticationMethod(); switch (oidcClientClientAuthenticationMethod) { case "basic": clientAuthenticationMethod = ClientAuthenticationMethod.BASIC; break; case "post": clientAuthenticationMethod = ClientAuthenticationMethod.POST; break; default: clientAuthenticationMethod = new ClientAuthenticationMethod(oidcClientClientAuthenticationMethod); break; } return clientAuthenticationMethod; }
@Test public void getValueWhenAuthenticationMethodPostThenReturnPost() { assertThat(ClientAuthenticationMethod.POST.getValue()).isEqualTo("post"); } }
/** * Returns a {@link MultiValueMap} of the form parameters used for the Access Token Request body. * * @param authorizationCodeGrantRequest the authorization code grant request * @return a {@link MultiValueMap} of the form parameters used for the Access Token Request body */ private MultiValueMap<String, String> buildFormParameters(OAuth2AuthorizationCodeGrantRequest authorizationCodeGrantRequest) { ClientRegistration clientRegistration = authorizationCodeGrantRequest.getClientRegistration(); OAuth2AuthorizationExchange authorizationExchange = authorizationCodeGrantRequest.getAuthorizationExchange(); MultiValueMap<String, String> formParameters = new LinkedMultiValueMap<>(); formParameters.add(OAuth2ParameterNames.GRANT_TYPE, authorizationCodeGrantRequest.getGrantType().getValue()); formParameters.add(OAuth2ParameterNames.CODE, authorizationExchange.getAuthorizationResponse().getCode()); formParameters.add(OAuth2ParameterNames.REDIRECT_URI, authorizationExchange.getAuthorizationRequest().getRedirectUri()); if (ClientAuthenticationMethod.POST.equals(clientRegistration.getClientAuthenticationMethod())) { formParameters.add(OAuth2ParameterNames.CLIENT_ID, clientRegistration.getClientId()); formParameters.add(OAuth2ParameterNames.CLIENT_SECRET, clientRegistration.getClientSecret()); } return formParameters; } }
@Test public void getValueWhenAuthenticationMethodBasicThenReturnBasic() { assertThat(ClientAuthenticationMethod.BASIC.getValue()).isEqualTo("basic"); }
private Consumer<HttpHeaders> headers(ClientRegistration clientRegistration) { return headers -> { headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); headers.setBasicAuth(clientRegistration.getClientId(), clientRegistration.getClientSecret()); if (ClientAuthenticationMethod.BASIC.equals(clientRegistration.getClientAuthenticationMethod())) { headers.setBasicAuth(clientRegistration.getClientId(), clientRegistration.getClientSecret()); } }; }
@Override public int hashCode() { return this.getValue().hashCode(); } }
private static BodyInserters.FormInserter<String> body(OAuth2ClientCredentialsGrantRequest authorizationGrantRequest) { ClientRegistration clientRegistration = authorizationGrantRequest.getClientRegistration(); BodyInserters.FormInserter<String> body = BodyInserters .fromFormData(OAuth2ParameterNames.GRANT_TYPE, authorizationGrantRequest.getGrantType().getValue()); Set<String> scopes = clientRegistration.getScopes(); if (!CollectionUtils.isEmpty(scopes)) { String scope = StringUtils.collectionToDelimitedString(scopes, " "); body.with(OAuth2ParameterNames.SCOPE, scope); } if (ClientAuthenticationMethod.POST.equals(clientRegistration.getClientAuthenticationMethod())) { body.with(OAuth2ParameterNames.CLIENT_ID, clientRegistration.getClientId()); body.with(OAuth2ParameterNames.CLIENT_SECRET, clientRegistration.getClientSecret()); } return body; }
@Override public int hashCode() { return this.getValue().hashCode(); } }
Secret clientSecret = new Secret(clientRegistration.getClientSecret()); ClientAuthentication clientAuthentication; if (ClientAuthenticationMethod.POST.equals(clientRegistration.getClientAuthenticationMethod())) { clientAuthentication = new ClientSecretPost(clientId, clientSecret); } else {
static HttpHeaders getTokenRequestHeaders(ClientRegistration clientRegistration) { HttpHeaders headers = new HttpHeaders(); headers.addAll(DEFAULT_TOKEN_REQUEST_HEADERS); if (ClientAuthenticationMethod.BASIC.equals(clientRegistration.getClientAuthenticationMethod())) { headers.setBasicAuth(clientRegistration.getClientId(), clientRegistration.getClientSecret()); } return headers; }
/** * Returns a {@link MultiValueMap} of the form parameters used for the Access Token Request body. * * @param clientCredentialsGrantRequest the client credentials grant request * @return a {@link MultiValueMap} of the form parameters used for the Access Token Request body */ private MultiValueMap<String, String> buildFormParameters(OAuth2ClientCredentialsGrantRequest clientCredentialsGrantRequest) { ClientRegistration clientRegistration = clientCredentialsGrantRequest.getClientRegistration(); MultiValueMap<String, String> formParameters = new LinkedMultiValueMap<>(); formParameters.add(OAuth2ParameterNames.GRANT_TYPE, clientCredentialsGrantRequest.getGrantType().getValue()); if (!CollectionUtils.isEmpty(clientRegistration.getScopes())) { formParameters.add(OAuth2ParameterNames.SCOPE, StringUtils.collectionToDelimitedString(clientRegistration.getScopes(), " ")); } if (ClientAuthenticationMethod.POST.equals(clientRegistration.getClientAuthenticationMethod())) { formParameters.add(OAuth2ParameterNames.CLIENT_ID, clientRegistration.getClientId()); formParameters.add(OAuth2ParameterNames.CLIENT_SECRET, clientRegistration.getClientSecret()); } return formParameters; } }
/** * Returns a {@link MultiValueMap} of the form parameters used for the Access Token Request body. * * @param authorizationCodeGrantRequest the authorization code grant request * @return a {@link MultiValueMap} of the form parameters used for the Access Token Request body */ private MultiValueMap<String, String> buildFormParameters(OAuth2AuthorizationCodeGrantRequest authorizationCodeGrantRequest) { ClientRegistration clientRegistration = authorizationCodeGrantRequest.getClientRegistration(); OAuth2AuthorizationExchange authorizationExchange = authorizationCodeGrantRequest.getAuthorizationExchange(); MultiValueMap<String, String> formParameters = new LinkedMultiValueMap<>(); formParameters.add(OAuth2ParameterNames.GRANT_TYPE, authorizationCodeGrantRequest.getGrantType().getValue()); formParameters.add(OAuth2ParameterNames.CODE, authorizationExchange.getAuthorizationResponse().getCode()); formParameters.add(OAuth2ParameterNames.REDIRECT_URI, authorizationExchange.getAuthorizationRequest().getRedirectUri()); if (ClientAuthenticationMethod.POST.equals(clientRegistration.getClientAuthenticationMethod())) { formParameters.add(OAuth2ParameterNames.CLIENT_ID, clientRegistration.getClientId()); formParameters.add(OAuth2ParameterNames.CLIENT_SECRET, clientRegistration.getClientSecret()); } return formParameters; } }
private Consumer<HttpHeaders> headers(ClientRegistration clientRegistration) { return headers -> { headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); headers.setBasicAuth(clientRegistration.getClientId(), clientRegistration.getClientSecret()); if (ClientAuthenticationMethod.BASIC.equals(clientRegistration.getClientAuthenticationMethod())) { headers.setBasicAuth(clientRegistration.getClientId(), clientRegistration.getClientSecret()); } }; }