Merge pull request #11889 from Henrich Kraemer

* gh-11889:
  Polish “Prevent reverse name lookup when configuring Jetty's address”
  Prevent reverse name lookup when configuring Jetty's address
This commit is contained in:
Andy Wilkinson 2018-02-02 14:56:12 +00:00
commit 61cba6402d
2 changed files with 20 additions and 3 deletions

View File

@ -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()) {

View File

@ -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();