diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientProperties.java index 3c83728e45..267d822003 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientProperties.java @@ -106,14 +106,24 @@ public class OAuth2ClientProperties { /** * Redirect URI. May be left blank when using a pre-defined provider. */ - private String redirectUriTemplate; + private String redirectUri; - public String getRedirectUriTemplate() { - return this.redirectUriTemplate; + public String getRedirectUri() { + return this.redirectUri; } - public void setRedirectUriTemplate(String redirectUriTemplate) { - this.redirectUriTemplate = redirectUriTemplate; + public void setRedirectUri(String redirectUri) { + this.redirectUri = redirectUri; + } + + @Deprecated + public String getRedirectUriTemplate() { + return getRedirectUri(); + } + + @Deprecated + public void setRedirectUriTemplate(String redirectUri) { + setRedirectUri(redirectUri); } } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesEnvironmentPostProcessor.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesEnvironmentPostProcessor.java index 05a1a5ce71..e25ea4597a 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesEnvironmentPostProcessor.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesEnvironmentPostProcessor.java @@ -86,8 +86,8 @@ public class OAuth2ClientPropertiesEnvironmentPostProcessor source); addProperty(registrationId, "client-name", registration::getClientName, map, source); - addProperty(registrationId, "redirect-uri-template", - registration::getRedirectUriTemplate, map, source); + addProperty(registrationId, "redirect-uri-template", registration::getRedirectUri, + map, source); addProperty(registrationId, "authorization-grant-type", registration::getAuthorizationGrantType, map, source); addProperty(registrationId, "client-authentication-method", diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapter.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapter.java index 59b433b215..ee1cd69cbc 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapter.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapter.java @@ -97,7 +97,7 @@ public final class OAuth2ClientPropertiesRegistrationAdapter { Map providers) { PropertyMapper map = PropertyMapper.get().alwaysApplyingWhenNonNull(); Builder builder = getBuilder(map, registrationId, properties, providers); - map.from(properties::getRedirectUriTemplate).to(builder::redirectUriTemplate); + map.from(properties::getRedirectUri).to(builder::redirectUriTemplate); return builder.build(); } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapterTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapterTests.java index 4e6b1cfac8..79d6cd8a6c 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapterTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapterTests.java @@ -78,7 +78,7 @@ public class OAuth2ClientPropertiesRegistrationAdapterTests { login.setClientSecret("clientSecret"); login.setClientAuthenticationMethod("post"); login.setAuthorizationGrantType("authorization_code"); - login.setRedirectUriTemplate("http://example.com/redirect"); + login.setRedirectUri("http://example.com/redirect"); login.setScope(Collections.singleton("scope")); login.setClientName("clientName"); properties.getRegistration().getLogin().put("registration", login); @@ -155,7 +155,7 @@ public class OAuth2ClientPropertiesRegistrationAdapterTests { login.setClientSecret("clientSecret"); login.setClientAuthenticationMethod("post"); login.setAuthorizationGrantType("authorization_code"); - login.setRedirectUriTemplate("http://example.com/redirect"); + login.setRedirectUri("http://example.com/redirect"); login.setScope(Collections.singleton("scope")); login.setClientName("clientName"); properties.getRegistration().getLogin().put("registration", login); @@ -314,7 +314,7 @@ public class OAuth2ClientPropertiesRegistrationAdapterTests { login.setClientId("clientId"); login.setClientSecret("clientSecret"); login.setClientAuthenticationMethod("post"); - login.setRedirectUriTemplate("http://example.com/redirect"); + login.setRedirectUri("http://example.com/redirect"); login.setScope(Collections.singleton("user")); Provider provider = new Provider(); provider.setIssuerUri(issuer); diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc index 75c05c006d..81071b1080 100644 --- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -3267,7 +3267,7 @@ You can register multiple Open ID Connect clients under the spring.security.oauth2.client.registration.login.my-client-1.client-name=Client for user scope spring.security.oauth2.client.registration.login.my-client-1.provider=my-oauth-provider spring.security.oauth2.client.registration.login.my-client-1.scope=user - spring.security.oauth2.client.registration.login.my-client-1.redirect-uri-template=http://localhost:8080/login/oauth2/code/my-client-1 + spring.security.oauth2.client.registration.login.my-client-1.redirect-uri=http://localhost:8080/login/oauth2/code/my-client-1 spring.security.oauth2.client.registration.login.my-client-1.client-authentication-method=basic spring.security.oauth2.client.registration.login.my-client-1.authorization-grant-type=authorization_code @@ -3276,13 +3276,13 @@ You can register multiple Open ID Connect clients under the spring.security.oauth2.client.registration.login.my-client-2.client-name=Client for email scope spring.security.oauth2.client.registration.login.my-client-2.provider=my-oauth-provider spring.security.oauth2.client.registration.login.my-client-2.scope=email - spring.security.oauth2.client.registration.login.my-client-2.redirect-uri-template=http://localhost:8080/login/oauth2/code/my-client-2 + spring.security.oauth2.client.registration.login.my-client-2.redirect-uri=http://localhost:8080/login/oauth2/code/my-client-2 spring.security.oauth2.client.registration.login.my-client-2.client-authentication-method=basic spring.security.oauth2.client.registration.login.my-client-2.authorization-grant-type=authorization_code ---- By default, Spring Security's `OAuth2LoginAuthenticationFilter` only processes URLs -matching `/login/oauth2/code/*`. If you want to customize the `redirect-uri-template` to +matching `/login/oauth2/code/*`. If you want to customize the `redirect-uri` to use a different pattern, you need to provide configuration to process that custom pattern. For example, for servlet applications, you can add your own `WebSecurityConfigurerAdapter` that resembles the following: diff --git a/spring-boot-samples/spring-boot-sample-oauth2-client/src/main/resources/application.yml b/spring-boot-samples/spring-boot-sample-oauth2-client/src/main/resources/application.yml index f496449922..070e578fb3 100644 --- a/spring-boot-samples/spring-boot-sample-oauth2-client/src/main/resources/application.yml +++ b/spring-boot-samples/spring-boot-sample-oauth2-client/src/main/resources/application.yml @@ -10,14 +10,14 @@ spring: client-name: Github user provider: github scope: user - redirect-uri-template: http://localhost:8080/login/oauth2/code/github + redirect-uri: http://localhost:8080/login/oauth2/code/github github-client-2: client-id: ${APP-CLIENT-ID} client-secret: ${APP-CLIENT-SECRET} client-name: Github email provider: github scope: user:email - redirect-uri-template: http://localhost:8080/login/oauth2/code/github + redirect-uri: http://localhost:8080/login/oauth2/code/github yahoo-oidc: client-id: a client-secret: b diff --git a/spring-boot-samples/spring-boot-sample-reactive-oauth2-client/src/main/resources/application.yml b/spring-boot-samples/spring-boot-sample-reactive-oauth2-client/src/main/resources/application.yml index abad05db72..77e1608d3e 100644 --- a/spring-boot-samples/spring-boot-sample-reactive-oauth2-client/src/main/resources/application.yml +++ b/spring-boot-samples/spring-boot-sample-reactive-oauth2-client/src/main/resources/application.yml @@ -10,14 +10,14 @@ spring: client-name: Github user provider: github scope: user - redirect-uri-template: http://localhost:8080/login/oauth2/code/github + redirect-uri: http://localhost:8080/login/oauth2/code/github github-client-2: client-id: ${APP-CLIENT-ID} client-secret: ${APP-CLIENT-SECRET} client-name: Github email provider: github scope: user:email - redirect-uri-template: http://localhost:8080/login/oauth2/code/github + redirect-uri: http://localhost:8080/login/oauth2/code/github yahoo-oidc: client-id: ${YAHOO-CLIENT-ID} client-secret: ${YAHOO-CLIENT-SECRET}