Skip to content

Commit 0e3984b

Browse files
jgrandjathomasdarimont
authored andcommitted
redirect-uri property supports 'baseRedirectUrl' uri variable
Fixes spring-projectsgh-4589
1 parent 9410ec0 commit 0e3984b

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ spring.security.oauth2.client.templates.google.client-alias=google
1313
# GitHub
1414
spring.security.oauth2.client.templates.github.client-authentication-method=basic
1515
spring.security.oauth2.client.templates.github.authorization-grant-type=authorization_code
16-
spring.security.oauth2.client.templates.github.redirect-uri={scheme}://{serverName}:{serverPort}{contextPath}/oauth2/authorize/code/{registrationId}
16+
spring.security.oauth2.client.templates.github.redirect-uri={baseRedirectUrl}/oauth2/authorize/code/{registrationId}
1717
spring.security.oauth2.client.templates.github.scope=user
1818
spring.security.oauth2.client.templates.github.authorization-uri=https://github.com/login/oauth/authorize
1919
spring.security.oauth2.client.templates.github.token-uri=https://github.com/login/oauth/access_token

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,15 @@ private String expandRedirectUri(HttpServletRequest request, ClientRegistration
160160
uriVariables.put("contextPath", request.getContextPath());
161161
uriVariables.put("registrationId", clientRegistration.getRegistrationId());
162162

163+
String baseRedirectUrl = UriComponentsBuilder.newInstance()
164+
.scheme(request.getScheme())
165+
.host(request.getServerName())
166+
.port(request.getServerPort())
167+
.path(request.getContextPath())
168+
.build()
169+
.toUriString();
170+
uriVariables.put("baseRedirectUrl", baseRedirectUrl);
171+
163172
return UriComponentsBuilder.fromUriString(clientRegistration.getRedirectUri())
164173
.buildAndExpand(uriVariables)
165174
.toUriString();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ security:
1515
github:
1616
client-authentication-method: basic
1717
authorization-grant-type: authorization_code
18-
redirect-uri: "{scheme}://{serverName}:{serverPort}{contextPath}/oauth2/authorize/code/{registrationId}"
18+
redirect-uri: "{baseRedirectUrl}/oauth2/authorize/code/{registrationId}"
1919
scope: user
2020
authorization-uri: "https://github.com/login/oauth/authorize"
2121
token-uri: "https://github.com/login/oauth/access_token"

0 commit comments

Comments
 (0)