diff options
author | Greg Wilkins | 2014-07-03 00:11:16 +0000 |
---|---|---|
committer | Greg Wilkins | 2014-07-03 00:11:16 +0000 |
commit | 7fbf521d4e3294e204080b11b8ae1f1606718eef (patch) | |
tree | 55dc17bbfc01cbdd9e16bb53551aa53c2e3a3388 /jetty-proxy | |
parent | 78b03c5b8e4b20aba23c939c4d9f217eaae01f0a (diff) | |
download | org.eclipse.jetty.project-7fbf521d4e3294e204080b11b8ae1f1606718eef.tar.gz org.eclipse.jetty.project-7fbf521d4e3294e204080b11b8ae1f1606718eef.tar.xz org.eclipse.jetty.project-7fbf521d4e3294e204080b11b8ae1f1606718eef.zip |
438204 correctly wrap IPv6 hostnames in URIs generated by jetty
Diffstat (limited to 'jetty-proxy')
-rw-r--r-- | jetty-proxy/src/main/java/org/eclipse/jetty/proxy/BalancerServlet.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/BalancerServlet.java b/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/BalancerServlet.java index 6877134521..fed4bf402b 100644 --- a/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/BalancerServlet.java +++ b/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/BalancerServlet.java @@ -32,6 +32,8 @@ import javax.servlet.UnavailableException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; +import org.eclipse.jetty.util.URIUtil; + public class BalancerServlet extends ProxyServlet { private static final String BALANCER_MEMBER_PREFIX = "balancerMember."; @@ -86,7 +88,7 @@ public class BalancerServlet extends ProxyServlet } } - private void initStickySessions() throws ServletException + private void initStickySessions() { _stickySessions = Boolean.parseBoolean(getServletConfig().getInitParameter("stickySessions")); } @@ -219,17 +221,17 @@ public class BalancerServlet extends ProxyServlet URI locationURI = URI.create(headerValue).normalize(); if (locationURI.isAbsolute() && isBackendLocation(locationURI)) { - String newURI = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort(); + StringBuilder newURI = URIUtil.newURIBuilder(request.getScheme(), request.getServerName(), request.getServerPort()); String component = locationURI.getRawPath(); if (component != null) - newURI += component; + newURI.append(component); component = locationURI.getRawQuery(); if (component != null) - newURI += "?" + component; + newURI.append('?').append(component); component = locationURI.getRawFragment(); if (component != null) - newURI += "#" + component; - return URI.create(newURI).normalize().toString(); + newURI.append('#').append(component); + return URI.create(newURI.toString()).normalize().toString(); } } return headerValue; |