[ARTEMIS-1043] Support IPv6 in NettyConnector

Wrap the host added to the HTTP request headers with IPV6Util.encloseHost
to ensure that load balancers that reads the header will have a valid
IPv6 address.

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1043
This commit is contained in:
Jeff Mesnil 2017-05-03 09:50:40 +02:00 committed by Clebert Suconic
parent 5391d42e47
commit 15b913333f
1 changed files with 3 additions and 2 deletions

View File

@ -694,9 +694,10 @@ public class NettyConnector extends AbstractConnector {
if (sslEnabled) { if (sslEnabled) {
scheme = "https"; scheme = "https";
} }
URI uri = new URI(scheme, null, IPV6Util.encloseHost(host), port, null, null, null); String ipv6Host = IPV6Util.encloseHost(host);
URI uri = new URI(scheme, null, ipv6Host, port, null, null, null);
HttpRequest request = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, uri.getRawPath()); HttpRequest request = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, uri.getRawPath());
request.headers().set(HttpHeaderNames.HOST, host); request.headers().set(HttpHeaderNames.HOST, ipv6Host);
request.headers().set(HttpHeaderNames.UPGRADE, ACTIVEMQ_REMOTING); request.headers().set(HttpHeaderNames.UPGRADE, ACTIVEMQ_REMOTING);
request.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderNames.UPGRADE); request.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderNames.UPGRADE);
final String serverName = ConfigurationHelper.getStringProperty(TransportConstants.ACTIVEMQ_SERVER_NAME, null, configuration); final String serverName = ConfigurationHelper.getStringProperty(TransportConstants.ACTIVEMQ_SERVER_NAME, null, configuration);