Skip to content

Commit 6095340

Browse files
committed
OAuth2AuthorizationRequestRedirectFilter -> Reuse code for baseUrl
Fixes gh-5153
1 parent d8f91e4 commit 6095340

File tree

1 file changed

+5
-12
lines changed

1 file changed

+5
-12
lines changed

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

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.springframework.security.web.savedrequest.HttpSessionRequestCache;
3030
import org.springframework.security.web.savedrequest.RequestCache;
3131
import org.springframework.security.web.util.ThrowableAnalyzer;
32+
import org.springframework.security.web.util.UrlUtils;
3233
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
3334
import org.springframework.util.Assert;
3435
import org.springframework.web.filter.OncePerRequestFilter;
@@ -254,23 +255,15 @@ private void unsuccessfulRedirectForAuthorization(HttpServletRequest request, Ht
254255
}
255256

256257
private String expandRedirectUri(HttpServletRequest request, ClientRegistration clientRegistration) {
257-
int port = request.getServerPort();
258-
if (("http".equals(request.getScheme()) && port == 80) || ("https".equals(request.getScheme()) && port == 443)) {
259-
port = -1; // Removes the port in UriComponentsBuilder
260-
}
261-
262258
// Supported URI variables -> baseUrl, action, registrationId
263259
// Used in -> CommonOAuth2Provider.DEFAULT_REDIRECT_URL = "{baseUrl}/{action}/oauth2/code/{registrationId}"
264260
Map<String, String> uriVariables = new HashMap<>();
265261
uriVariables.put("registrationId", clientRegistration.getRegistrationId());
266262

267-
String baseUrl = UriComponentsBuilder.newInstance()
268-
.scheme(request.getScheme())
269-
.host(request.getServerName())
270-
.port(port)
271-
.path(request.getContextPath())
272-
.build()
273-
.toUriString();
263+
String baseUrl = UriComponentsBuilder.fromHttpUrl(UrlUtils.buildFullRequestUrl(request))
264+
.replacePath(request.getContextPath())
265+
.build()
266+
.toUriString();
274267
uriVariables.put("baseUrl", baseUrl);
275268

276269
if (AuthorizationGrantType.AUTHORIZATION_CODE.equals(clientRegistration.getAuthorizationGrantType())) {

0 commit comments

Comments
 (0)