From 541db563cfdef65b37dee20cca9e9984f6cf8624 Mon Sep 17 00:00:00 2001 From: Daniel Mikusa Date: Fri, 7 Jan 2022 09:14:48 -0500 Subject: [PATCH] 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 --- ...ingSecurityOAuth2BindingsPropertiesProcessor.java | 5 +++++ ...ecurityOAuth2BindingsPropertiesProcessorTest.java | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/cloud/bindings/boot/SpringSecurityOAuth2BindingsPropertiesProcessor.java b/src/main/java/org/springframework/cloud/bindings/boot/SpringSecurityOAuth2BindingsPropertiesProcessor.java index 3fac36c..a804d74 100644 --- a/src/main/java/org/springframework/cloud/bindings/boot/SpringSecurityOAuth2BindingsPropertiesProcessor.java +++ b/src/main/java/org/springframework/cloud/bindings/boot/SpringSecurityOAuth2BindingsPropertiesProcessor.java @@ -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)); diff --git a/src/test/java/org/springframework/cloud/bindings/boot/SpringSecurityOAuth2BindingsPropertiesProcessorTest.java b/src/test/java/org/springframework/cloud/bindings/boot/SpringSecurityOAuth2BindingsPropertiesProcessorTest.java index 8ec31bc..67c9ebb 100644 --- a/src/test/java/org/springframework/cloud/bindings/boot/SpringSecurityOAuth2BindingsPropertiesProcessorTest.java +++ b/src/test/java/org/springframework/cloud/bindings/boot/SpringSecurityOAuth2BindingsPropertiesProcessorTest.java @@ -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")