Add missing Spring Security OAuth2 bindings

[This document](https://docs.spring.io/spring-security/site/docs/5.2.12.RELEASE/reference/html/oauth2.html#oauth2login-boot-property-mappings) lists a handful of properties that are not currently being mapped from a binding to the Spring Security OAuth2 settings. This PR adds the missing properties.

Resolves #59.

Signed-off-by: Daniel Mikusa <dmikusa@vmware.com>
This commit is contained in:
Daniel Mikusa
2022-01-07 09:14:48 -05:00
parent d9d1a57237
commit 541db563cf
2 changed files with 16 additions and 1 deletions

View File

@@ -56,6 +56,11 @@ public final class SpringSecurityOAuth2BindingsPropertiesProcessor implements Bi
properties.put(String.format("spring.security.oauth2.client.registration.%s.provider", clientName), provider);
map.from("client-id").to(String.format("spring.security.oauth2.client.registration.%s.client-id", clientName));
map.from("client-secret").to(String.format("spring.security.oauth2.client.registration.%s.client-secret", clientName));
map.from("client-authentication-method").to(String.format("spring.security.oauth2.client.registration.%s.client-authentication-method", clientName));
map.from("authorization-grant-type").to(String.format("spring.security.oauth2.client.registration.%s.authorization-grant-type", clientName));
map.from("redirect-uri").to(String.format("spring.security.oauth2.client.registration.%s.redirect-uri", clientName));
map.from("scope").to(String.format("spring.security.oauth2.client.registration.%s.scope", clientName));
map.from("client-name").to(String.format("spring.security.oauth2.client.registration.%s.client-name", clientName));
map.from("issuer-uri").to(String.format("spring.security.oauth2.client.provider.%s.issuer-uri", provider));
map.from("authorization-uri").to(String.format("spring.security.oauth2.client.provider.%s.authorization-uri", provider));
map.from("token-uri").to(String.format("spring.security.oauth2.client.provider.%s.token-uri", provider));

View File

@@ -54,6 +54,11 @@ final class SpringSecurityOAuth2BindingsPropertiesProcessorTest {
.withEntry("provider", "my-provider")
.withEntry("client-id", "my-provider-client-id")
.withEntry("client-secret", "my-provider-client-secret")
.withEntry("client-authentication-method", "my-provider-client-authentication-method")
.withEntry("authorization-grant-type", "my-provider-authorization-grant-type")
.withEntry("redirect-uri", "my-provider-redirect-uri")
.withEntry("scope", "my-provider-scope1,my-provider-scope2")
.withEntry("client-name", "my-provider-client-name")
.withEntry("authorization-uri", "my-provider-authorization-uri")
.withEntry("token-uri", "my-provider-token-uri")
.withEntry("user-info-uri", "my-provider-user-info-uri")
@@ -101,9 +106,14 @@ final class SpringSecurityOAuth2BindingsPropertiesProcessorTest {
void testProvider() {
new SpringSecurityOAuth2BindingsPropertiesProcessor().process(environment, bindings, properties);
assertThat(properties)
.containsEntry("spring.security.oauth2.client.registration.test-name-3.provider", "my-provider")
.containsEntry("spring.security.oauth2.client.registration.test-name-3.client-id", "my-provider-client-id")
.containsEntry("spring.security.oauth2.client.registration.test-name-3.client-secret", "my-provider-client-secret")
.containsEntry("spring.security.oauth2.client.registration.test-name-3.provider", "my-provider")
.containsEntry("spring.security.oauth2.client.registration.test-name-3.client-authentication-method", "my-provider-client-authentication-method")
.containsEntry("spring.security.oauth2.client.registration.test-name-3.authorization-grant-type", "my-provider-authorization-grant-type")
.containsEntry("spring.security.oauth2.client.registration.test-name-3.redirect-uri", "my-provider-redirect-uri")
.containsEntry("spring.security.oauth2.client.registration.test-name-3.scope", "my-provider-scope1,my-provider-scope2")
.containsEntry("spring.security.oauth2.client.registration.test-name-3.client-name", "my-provider-client-name")
.containsEntry("spring.security.oauth2.client.provider.my-provider.authorization-uri", "my-provider-authorization-uri")
.containsEntry("spring.security.oauth2.client.provider.my-provider.token-uri", "my-provider-token-uri")
.containsEntry("spring.security.oauth2.client.provider.my-provider.user-info-uri", "my-provider-user-info-uri")