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:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user