diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactory.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactory.java index bc31108a72..a797232f79 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactory.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2017 the original author or authors. + * Copyright 2012-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -101,6 +101,8 @@ import org.springframework.util.StringUtils; * @author Eddú Meléndez * @author Venil Noronha * @author Henri Kerola + * @author Henrich Krämer + * * @see #setPort(int) * @see #setConfigurations(Collection) * @see JettyEmbeddedServletContainer @@ -895,7 +897,7 @@ public class JettyEmbeddedServletContainerFactory ReflectionUtils.findMethod(connectorClass, "setPort", int.class) .invoke(connector, address.getPort()); ReflectionUtils.findMethod(connectorClass, "setHost", String.class) - .invoke(connector, address.getHostName()); + .invoke(connector, address.getHostString()); if (acceptors > 0) { ReflectionUtils.findMethod(connectorClass, "setAcceptors", int.class) .invoke(connector, acceptors); @@ -924,7 +926,7 @@ public class JettyEmbeddedServletContainerFactory public AbstractConnector createConnector(Server server, InetSocketAddress address, int acceptors, int selectors) { ServerConnector connector = new ServerConnector(server, acceptors, selectors); - connector.setHost(address.getHostName()); + connector.setHost(address.getHostString()); connector.setPort(address.getPort()); for (ConnectionFactory connectionFactory : connector .getConnectionFactories()) { diff --git a/spring-boot/src/test/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactoryTests.java b/spring-boot/src/test/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactoryTests.java index cce0048cd6..5403f2b28d 100644 --- a/spring-boot/src/test/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactoryTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactoryTests.java @@ -17,6 +17,7 @@ package org.springframework.boot.context.embedded.jetty; import java.io.IOException; +import java.net.InetAddress; import java.nio.charset.Charset; import java.util.Arrays; import java.util.Locale; @@ -35,6 +36,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.jasper.servlet.JspServlet; +import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; @@ -114,6 +116,19 @@ public class JettyEmbeddedServletContainerFactoryTests } } + @Test + public void specificIPAddressNotReverseResolved() throws Exception { + JettyEmbeddedServletContainerFactory factory = getFactory(); + InetAddress localhost = InetAddress.getLocalHost(); + factory.setAddress(InetAddress.getByAddress(localhost.getAddress())); + this.container = factory.getEmbeddedServletContainer(); + this.container.start(); + Connector connector = ((JettyEmbeddedServletContainer) this.container).getServer() + .getConnectors()[0]; + assertThat(((ServerConnector) connector).getHost()) + .isEqualTo(localhost.getHostAddress()); + } + @Test public void sessionTimeout() throws Exception { JettyEmbeddedServletContainerFactory factory = getFactory();