Browse Source

redirect-uri property supports 'baseRedirectUrl' uri variable

Fixes gh-4589
pull/4601/merge
Joe Grandja 8 years ago
parent
commit
fb57111ecd
  1. 2
      config/src/main/resources/org/springframework/security/config/oauth2/client/spring-security-oauth2-client-templates.properties
  2. 9
      oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/AuthorizationCodeRequestRedirectFilter.java
  3. 2
      samples/boot/oauth2login/src/main/resources/META-INF/oauth2-clients-defaults.yml

2
config/src/main/resources/org/springframework/security/config/oauth2/client/spring-security-oauth2-client-templates.properties

@ -13,7 +13,7 @@ spring.security.oauth2.client.templates.google.client-alias=google @@ -13,7 +13,7 @@ spring.security.oauth2.client.templates.google.client-alias=google
# GitHub
spring.security.oauth2.client.templates.github.client-authentication-method=basic
spring.security.oauth2.client.templates.github.authorization-grant-type=authorization_code
spring.security.oauth2.client.templates.github.redirect-uri={scheme}://{serverName}:{serverPort}{contextPath}/oauth2/authorize/code/{registrationId}
spring.security.oauth2.client.templates.github.redirect-uri={baseRedirectUrl}/oauth2/authorize/code/{registrationId}
spring.security.oauth2.client.templates.github.scope=user
spring.security.oauth2.client.templates.github.authorization-uri=https://github.com/login/oauth/authorize
spring.security.oauth2.client.templates.github.token-uri=https://github.com/login/oauth/access_token

9
oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/AuthorizationCodeRequestRedirectFilter.java

@ -160,6 +160,15 @@ public class AuthorizationCodeRequestRedirectFilter extends OncePerRequestFilter @@ -160,6 +160,15 @@ public class AuthorizationCodeRequestRedirectFilter extends OncePerRequestFilter
uriVariables.put("contextPath", request.getContextPath());
uriVariables.put("registrationId", clientRegistration.getRegistrationId());
String baseRedirectUrl = UriComponentsBuilder.newInstance()
.scheme(request.getScheme())
.host(request.getServerName())
.port(request.getServerPort())
.path(request.getContextPath())
.build()
.toUriString();
uriVariables.put("baseRedirectUrl", baseRedirectUrl);
return UriComponentsBuilder.fromUriString(clientRegistration.getRedirectUri())
.buildAndExpand(uriVariables)
.toUriString();

2
samples/boot/oauth2login/src/main/resources/META-INF/oauth2-clients-defaults.yml

@ -15,7 +15,7 @@ security: @@ -15,7 +15,7 @@ security:
github:
client-authentication-method: basic
authorization-grant-type: authorization_code
redirect-uri: "{scheme}://{serverName}:{serverPort}{contextPath}/oauth2/authorize/code/{registrationId}"
redirect-uri: "{baseRedirectUrl}/oauth2/authorize/code/{registrationId}"
scope: user
authorization-uri: "https://github.com/login/oauth/authorize"
token-uri: "https://github.com/login/oauth/access_token"

Loading…
Cancel
Save