Skip to content

Commit efce938

Browse files
nosanphilwebb
authored andcommitted
Trim OAuth2 provider property whitespace
Update `OAuth2ClientPropertiesRegistrationAdapter` to trim whitespace of the "provider" property. See gh-17497
1 parent fb1dd8f commit efce938

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,10 @@ public static Map<String, ClientRegistration> getClientRegistrations(OAuth2Clien
5656

5757
private static ClientRegistration getClientRegistration(String registrationId,
5858
OAuth2ClientProperties.Registration properties, Map<String, Provider> providers) {
59-
Builder builder = getBuilderFromIssuerIfPossible(registrationId, properties.getProvider(), providers);
59+
String provider = StringUtils.trimWhitespace(properties.getProvider());
60+
Builder builder = getBuilderFromIssuerIfPossible(registrationId, provider, providers);
6061
if (builder == null) {
61-
builder = getBuilder(registrationId, properties.getProvider(), providers);
62+
builder = getBuilder(registrationId, provider, providers);
6263
}
6364
PropertyMapper map = PropertyMapper.get().alwaysApplyingWhenNonNull();
6465
map.from(properties::getClientId).to(builder::clientId);

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapterTests.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,31 @@ public void oidcProviderConfigurationWithCustomConfigurationOverridesProviderDef
251251
assertThat(userInfoEndpoint.getUserNameAttributeName()).isEqualTo("sub");
252252
}
253253

254+
@Test
255+
public void getClientRegistrationsWhenRegistrationProviderPropertyShouldBeTrimmed() {
256+
OAuth2ClientProperties properties = new OAuth2ClientProperties();
257+
OAuth2ClientProperties.Registration registration = createRegistration(" provider ");
258+
Provider provider = createProvider();
259+
properties.getProvider().put("provider", provider);
260+
properties.getRegistration().put("registration", registration);
261+
assertThat(OAuth2ClientPropertiesRegistrationAdapter.getClientRegistrations(properties)).isNotEmpty();
262+
}
263+
264+
@Test
265+
public void getClientRegistrationsWhenRegistrationProviderPropertyWithIssuerShouldBeTrimmed() throws Exception {
266+
this.server = new MockWebServer();
267+
this.server.start();
268+
String issuer = this.server.url("").toString();
269+
setupMockResponse(issuer);
270+
OAuth2ClientProperties properties = new OAuth2ClientProperties();
271+
OAuth2ClientProperties.Registration registration = createRegistration(" provider ");
272+
Provider provider = createProvider();
273+
provider.setIssuerUri(issuer);
274+
properties.getProvider().put("provider", provider);
275+
properties.getRegistration().put("registration", registration);
276+
assertThat(OAuth2ClientPropertiesRegistrationAdapter.getClientRegistrations(properties)).isNotEmpty();
277+
}
278+
254279
private Provider createProvider() {
255280
Provider provider = new Provider();
256281
provider.setAuthorizationUri("https://example.com/auth");

0 commit comments

Comments
 (0)