Deprecate OAuth2 login redirect-uri-template

This property is deprecated in favor of
`spring.security.oauth2.client.registration.login.*.redirect-uri

Closes gh-14226
This commit is contained in:
Madhura Bhave
2018-08-28 15:40:54 -07:00
parent a54898b8f5
commit a33e58fc45
7 changed files with 28 additions and 18 deletions

View File

@@ -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);
}
}

View File

@@ -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",

View File

@@ -97,7 +97,7 @@ public final class OAuth2ClientPropertiesRegistrationAdapter {
Map<String, Provider> 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();
}

View File

@@ -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);

View File

@@ -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:

View File

@@ -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

View File

@@ -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}