From 1c43a4c7ab46e7e5ac871b0fb1c04830c6299bc4 Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Tue, 11 Apr 2023 15:12:54 +0100 Subject: [PATCH] Fix regression in ReactorServerHttpRequest Instead of a backport for cef916, this change simply undoes the optimization that led to the regression. Closes gh-30314 --- .../http/server/reactive/ReactorServerHttpRequest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorServerHttpRequest.java b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorServerHttpRequest.java index 83913654db..abc5068302 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorServerHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorServerHttpRequest.java @@ -79,10 +79,12 @@ class ReactorServerHttpRequest extends AbstractServerHttpRequest { return new URI(resolveBaseUrl(request) + resolveRequestUri(request)); } - private static String resolveBaseUrl(HttpServerRequest request) { + private static URI resolveBaseUrl(HttpServerRequest request) throws URISyntaxException { String scheme = request.scheme(); int port = request.hostPort(); - return scheme + "://" + request.hostName() + (usePort(scheme, port) ? ":" + port : ""); + return (usePort(scheme, port) ? + new URI(scheme, null, request.hostName(), port, null, null, null) : + new URI(scheme, request.hostName(), null, null)); } private static boolean usePort(String scheme, int port) {