Resolve baseUrl to String vs temporary URI
Along the lines of what was suggested in #30047. Closes gh-30062
This commit is contained in:
parent
682a4d5353
commit
9624ea392a
|
@ -76,17 +76,15 @@ class ReactorServerHttpRequest extends AbstractServerHttpRequest {
|
||||||
return new URI(resolveBaseUrl(request) + resolveRequestUri(request));
|
return new URI(resolveBaseUrl(request) + resolveRequestUri(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static URI resolveBaseUrl(HttpServerRequest request) throws URISyntaxException {
|
private static String resolveBaseUrl(HttpServerRequest request) {
|
||||||
String scheme = getScheme(request);
|
String scheme = request.scheme();
|
||||||
int port = request.hostPort();
|
int port = request.hostPort();
|
||||||
return ((scheme.equals("http") || scheme.equals("ws")) && (port != 80)) ||
|
return scheme + "://" + request.hostName() + (usePort(scheme, port) ? ":" + port : "");
|
||||||
((scheme.equals("https") || scheme.equals("wss")) && (port != 443)) ?
|
|
||||||
new URI(scheme, null, request.hostName(), port, null, null, null) :
|
|
||||||
new URI(scheme, request.hostName(), null, null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getScheme(HttpServerRequest request) {
|
private static boolean usePort(String scheme, int port) {
|
||||||
return request.scheme();
|
return ((scheme.equals("http") || scheme.equals("ws")) && (port != 80)) ||
|
||||||
|
((scheme.equals("https") || scheme.equals("wss")) && (port != 443));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String resolveRequestUri(HttpServerRequest request) {
|
private static String resolveRequestUri(HttpServerRequest request) {
|
||||||
|
|
Loading…
Reference in New Issue