Merge pull request #17497 from nosan

* pr/17497:
  Trim OAuth2 provider property whitespace

Closes gh-17497
This commit is contained in:
Phillip Webb 2019-07-24 14:38:37 +01:00
commit 0da0bff397
2 changed files with 28 additions and 2 deletions

View File

@ -56,9 +56,10 @@ public final class OAuth2ClientPropertiesRegistrationAdapter {
private static ClientRegistration getClientRegistration(String registrationId,
OAuth2ClientProperties.Registration properties, Map<String, Provider> providers) {
Builder builder = getBuilderFromIssuerIfPossible(registrationId, properties.getProvider(), providers);
String provider = StringUtils.trimWhitespace(properties.getProvider());
Builder builder = getBuilderFromIssuerIfPossible(registrationId, provider, providers);
if (builder == null) {
builder = getBuilder(registrationId, properties.getProvider(), providers);
builder = getBuilder(registrationId, provider, providers);
}
PropertyMapper map = PropertyMapper.get().alwaysApplyingWhenNonNull();
map.from(properties::getClientId).to(builder::clientId);

View File

@ -251,6 +251,31 @@ public class OAuth2ClientPropertiesRegistrationAdapterTests {
assertThat(userInfoEndpoint.getUserNameAttributeName()).isEqualTo("sub");
}
@Test
public void getClientRegistrationsWhenRegistrationProviderPropertyShouldBeTrimmed() {
OAuth2ClientProperties properties = new OAuth2ClientProperties();
OAuth2ClientProperties.Registration registration = createRegistration(" provider ");
Provider provider = createProvider();
properties.getProvider().put("provider", provider);
properties.getRegistration().put("registration", registration);
assertThat(OAuth2ClientPropertiesRegistrationAdapter.getClientRegistrations(properties)).isNotEmpty();
}
@Test
public void getClientRegistrationsWhenRegistrationProviderPropertyWithIssuerShouldBeTrimmed() throws Exception {
this.server = new MockWebServer();
this.server.start();
String issuer = this.server.url("").toString();
setupMockResponse(issuer);
OAuth2ClientProperties properties = new OAuth2ClientProperties();
OAuth2ClientProperties.Registration registration = createRegistration(" provider ");
Provider provider = createProvider();
provider.setIssuerUri(issuer);
properties.getProvider().put("provider", provider);
properties.getRegistration().put("registration", registration);
assertThat(OAuth2ClientPropertiesRegistrationAdapter.getClientRegistrations(properties)).isNotEmpty();
}
private Provider createProvider() {
Provider provider = new Provider();
provider.setAuthorizationUri("https://example.com/auth");