add support for redirect-uris key for oauth2 bindings (#70)
This commit is contained in:
committed by
GitHub
parent
ac28f74c7a
commit
5ab708ff04
@@ -291,7 +291,7 @@ Disable Property: `org.springframework.cloud.bindings.boot.oauth2.enable`
|
||||
| `spring.security.oauth2.client.registration.{name}.client-name` | `{client-name}`
|
||||
| `spring.security.oauth2.client.registration.{name}.client-authentication-method` | `{client-authentication-method}`
|
||||
| `spring.security.oauth2.client.registration.{name}.authorization-grant-type` | `{authorization-grant-type}` or if not set then `{authorization-grant-types}` if it contains only one value (comma-separated)
|
||||
| `spring.security.oauth2.client.registration.{name}.redirect-uri` | `{redirect-uri}`
|
||||
| `spring.security.oauth2.client.registration.{name}.redirect-uri` | `{redirect-uri}` or if not set then `{redirect-uris}` if it contains only one value (comma-separated)
|
||||
| `spring.security.oauth2.client.registration.{name}.scope` | `{scope}`
|
||||
| `spring.security.oauth2.client.provider.{provider}.issuer-uri` | `{issuer-uri}`
|
||||
| `spring.security.oauth2.client.provider.{provider}.authorization-uri` | `{authorization-uri}`
|
||||
|
||||
@@ -64,6 +64,9 @@ public final class SpringSecurityOAuth2BindingsPropertiesProcessor implements Bi
|
||||
.when(SpringSecurityOAuth2BindingsPropertiesProcessor::hasSingleValue)
|
||||
.toIfAbsent(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("redirect-uris")
|
||||
.when(SpringSecurityOAuth2BindingsPropertiesProcessor::hasSingleValue)
|
||||
.toIfAbsent(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));
|
||||
|
||||
@@ -166,6 +166,49 @@ final class SpringSecurityOAuth2BindingsPropertiesProcessorTest {
|
||||
.containsEntry("spring.security.oauth2.client.registration.binding-name.authorization-grant-type", "client_credentials");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("contributes a redirect-uri is there is only one in redirect-uris")
|
||||
void testRedirectUrisOneEntry() {
|
||||
Bindings bindings = new Bindings(new Binding("binding-name", Paths.get("test-path"),
|
||||
new FluentMap()
|
||||
.withEntry(Binding.TYPE, TYPE)
|
||||
.withEntry("provider", "some-provider")
|
||||
.withEntry("redirect-uris", "https://app.example.com/authorized")
|
||||
));
|
||||
new SpringSecurityOAuth2BindingsPropertiesProcessor().process(new MockEnvironment(), bindings, properties);
|
||||
assertThat(properties)
|
||||
.containsEntry("spring.security.oauth2.client.registration.binding-name.redirect-uri", "https://app.example.com/authorized");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("does not contributes a redirect-uri is there are multiple entries in redirect-uris")
|
||||
void testRedirectUrisMultipleEntries() {
|
||||
Bindings bindings = new Bindings(new Binding("binding-name", Paths.get("test-path"),
|
||||
new FluentMap()
|
||||
.withEntry(Binding.TYPE, TYPE)
|
||||
.withEntry("provider", "some-provider")
|
||||
.withEntry("redirect-uris", "https://app.example.com/authorized,https://other-app.example.com/login")
|
||||
));
|
||||
new SpringSecurityOAuth2BindingsPropertiesProcessor().process(new MockEnvironment(), bindings, properties);
|
||||
assertThat(properties)
|
||||
.doesNotContainKey("spring.security.oauth2.client.registration.binding-name.redirect-uri");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("uses the value from redirect-uri if redirect-uris is also present")
|
||||
void testRedirectUriAndRedirectUris() {
|
||||
Bindings bindings = new Bindings(new Binding("binding-name", Paths.get("test-path"),
|
||||
new FluentMap()
|
||||
.withEntry(Binding.TYPE, TYPE)
|
||||
.withEntry("provider", "some-provider")
|
||||
.withEntry("redirect-uris", "https://app.example.com/authorized")
|
||||
.withEntry("redirect-uri", "https://other-app.example.com/login")
|
||||
));
|
||||
new SpringSecurityOAuth2BindingsPropertiesProcessor().process(new MockEnvironment(), bindings, properties);
|
||||
assertThat(properties)
|
||||
.containsEntry("spring.security.oauth2.client.registration.binding-name.redirect-uri", "https://other-app.example.com/login");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("can be disabled")
|
||||
void disabled() {
|
||||
|
||||
Reference in New Issue
Block a user