From 071f344a3a8871ad8fd6403357e5cd985c4dc3fc Mon Sep 17 00:00:00 2001 From: Corneil du Plessis Date: Wed, 10 Jul 2024 16:08:20 +0200 Subject: [PATCH] Update transformLocation to not append port when serverName has : after @. (#1422) Fixes #1420 --- .../ws/transport/http/LocationTransformerObjectSupport.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spring-ws-core/src/main/java/org/springframework/ws/transport/http/LocationTransformerObjectSupport.java b/spring-ws-core/src/main/java/org/springframework/ws/transport/http/LocationTransformerObjectSupport.java index 90d04766..4d8fc8f6 100644 --- a/spring-ws-core/src/main/java/org/springframework/ws/transport/http/LocationTransformerObjectSupport.java +++ b/spring-ws-core/src/main/java/org/springframework/ws/transport/http/LocationTransformerObjectSupport.java @@ -97,7 +97,11 @@ public abstract class LocationTransformerObjectSupport extends TransformerObject int serverPort = StringUtils.hasText(xForwardedPort) ? Integer.parseInt(xForwardedPort) : request.getServerPort(); StringBuilder url = new StringBuilder(scheme); - url.append("://").append(serverName).append(':').append(serverPort); + url.append("://").append(serverName); + boolean serverHasColonAfterAt = serverName.indexOf("@") < serverName.indexOf(":"); + if(!serverHasColonAfterAt) { + url.append(':').append(serverPort); + } if (location.startsWith("/")) { // a relative path, prepend the context path url.append(request.getContextPath()).append(location);