diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/handler/ConnectHandlerTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/handler/ConnectHandlerTest.java index 722584758a2..8a5ac5b5d2c 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/handler/ConnectHandlerTest.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/handler/ConnectHandlerTest.java @@ -12,15 +12,21 @@ package org.eclipse.jetty.server.handler; //You may elect to redistribute this code under either of these licenses. //======================================================================== +import static org.junit.Assert.*; +import static org.junit.Assume.*; + import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; +import java.net.InetAddress; import java.net.Socket; +import java.net.UnknownHostException; import java.nio.channels.SocketChannel; import java.util.concurrent.ConcurrentMap; + import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; @@ -31,13 +37,10 @@ import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.nio.SelectChannelConnector; import org.eclipse.jetty.toolchain.test.OS; -import org.eclipse.jetty.util.log.Log; +import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assume.assumeTrue; - /** * @version $Revision$ $Date$ */ @@ -120,7 +123,25 @@ public class ConnectHandlerTest extends AbstractConnectHandlerTest @Test public void testCONNECTBadHostPort() throws Exception { - String hostPort = "badlocalhost:" + serverConnector.getLocalPort(); + String invalidHostname = "AMAZEBALLS_BADHOST.webtide.com"; + + try + { + InetAddress addr = InetAddress.getByName(invalidHostname); + StringBuilder err = new StringBuilder(); + err.append("DNS Hijacking detected: "); + err.append(invalidHostname).append(" should have not returned a valid IP address ["); + err.append(addr.getHostAddress()).append("]. "); + err.append("Fix your DNS provider to have this test pass."); + err.append("\nFor more info see https://en.wikipedia.org/wiki/DNS_hijacking"); + Assert.assertNull(err.toString(), addr); + } + catch (UnknownHostException e) + { + // expected path + } + + String hostPort = String.format("%s:%d",invalidHostname,serverConnector.getLocalPort()); String request = "" + "CONNECT " + hostPort + " HTTP/1.1\r\n" + "Host: " + hostPort + "\r\n" + @@ -137,7 +158,7 @@ public class ConnectHandlerTest extends AbstractConnectHandlerTest // Expect 500 OK from the CONNECT request Response response = readResponse(input); - assertEquals("500", response.getCode()); + assertEquals("Response Code", "500", response.getCode()); } finally {