Fail at startup if a configured OAuth2 client ID is not valid.
This commit is contained in:
@@ -130,6 +130,11 @@ class CredHubRestTemplateFactory {
|
||||
OAuth2AuthorizedClientService authorizedClientService) {
|
||||
ClientRegistration clientRegistration = clientRegistrationRepository.findByRegistrationId(clientId);
|
||||
|
||||
if (clientRegistration == null) {
|
||||
throw new IllegalStateException("The CredHub OAuth2 client registration ID '" + clientId +
|
||||
"' is not a valid Spring Security OAuth2 client registration");
|
||||
}
|
||||
|
||||
RestOperations tokenServerRestTemplate = createTokenServerRestTemplate(clientHttpRequestFactory);
|
||||
|
||||
restTemplate.getInterceptors()
|
||||
|
||||
@@ -31,8 +31,6 @@ import org.springframework.security.oauth2.client.web.server.ServerOAuth2Authori
|
||||
import org.springframework.web.reactive.function.client.ExchangeStrategies;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import static org.springframework.security.oauth2.client.web.reactive.function.client.ServerOAuth2AuthorizedClientExchangeFilterFunction.clientRegistrationId;
|
||||
|
||||
/**
|
||||
* Factory for creating a {@link WebClient} configured for communication with
|
||||
* a CredHub server.
|
||||
@@ -82,7 +80,9 @@ class CredHubWebClientFactory {
|
||||
return buildWebClient(properties.getUrl(), clientHttpConnector)
|
||||
.filter(oauth)
|
||||
.defaultRequest(requestHeadersSpec ->
|
||||
requestHeadersSpec.attributes(clientRegistrationId(properties.getOauth2().getRegistrationId())))
|
||||
requestHeadersSpec.attributes(
|
||||
ServerOAuth2AuthorizedClientExchangeFilterFunction
|
||||
.clientRegistrationId(properties.getOauth2().getRegistrationId())))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@@ -101,6 +101,24 @@ public class CredHubTemplateAutoConfigurationTests {
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void credHubTemplatesNotConfiguredWithInvalidClientRegistration() {
|
||||
context
|
||||
.withPropertyValues(
|
||||
"spring.credhub.url=https://localhost",
|
||||
"spring.credhub.oauth2.registration-id=invalid-credhub-client",
|
||||
|
||||
"spring.security.oauth2.client.registration.credhub-client.provider=uaa",
|
||||
"spring.security.oauth2.client.registration.credhub-client.client-id=test-client",
|
||||
"spring.security.oauth2.client.registration.credhub-client.client-secret=test-secret",
|
||||
"spring.security.oauth2.client.registration.credhub-client.authorization-grant-type=client_credentials",
|
||||
"spring.security.oauth2.client.provider.uaa.token-uri=http://example.com/uaa/oauth/token"
|
||||
)
|
||||
.run(context -> assertThat(context)
|
||||
.getFailure()
|
||||
.hasMessageContaining("The CredHub OAuth2 client registration ID 'invalid-credhub-client' is not a valid"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void credHubTemplatesNotConfiguredWithMissingClientRegistration() {
|
||||
context
|
||||
@@ -108,7 +126,9 @@ public class CredHubTemplateAutoConfigurationTests {
|
||||
"spring.credhub.url=https://localhost",
|
||||
"spring.credhub.oauth2.registration-id=credhub-client"
|
||||
)
|
||||
.run(context -> assertThat(context).hasFailed());
|
||||
.run(context -> assertThat(context)
|
||||
.getFailure()
|
||||
.hasMessageContaining("A CredHub OAuth2 client registration is configured but"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user