From 87a7ff550b5d01d8e22439a757a900364bf2c36c Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Fri, 23 Dec 2016 13:44:19 +1100 Subject: [PATCH 1/2] Fixes #1201 --- .../src/main/config/etc/jetty-http-forwarded.xml | 2 +- .../server/ForwardedRequestCustomizerTest.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/jetty-server/src/main/config/etc/jetty-http-forwarded.xml b/jetty-server/src/main/config/etc/jetty-http-forwarded.xml index a842e0a4efff..50b80976a2a4 100644 --- a/jetty-server/src/main/config/etc/jetty-http-forwarded.xml +++ b/jetty-server/src/main/config/etc/jetty-http-forwarded.xml @@ -11,7 +11,7 @@ - + diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/ForwardedRequestCustomizerTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/ForwardedRequestCustomizerTest.java index 9fcfc8e001b8..8723b995a5ab 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/ForwardedRequestCustomizerTest.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/ForwardedRequestCustomizerTest.java @@ -202,6 +202,22 @@ public void testProto() throws Exception assertEquals("0",_results.poll()); } + @Test + public void testFor() throws Exception + { + String response=_connector.getResponse( + "GET / HTTP/1.1\n"+ + "Host: myhost\n"+ + "X-Forwarded-For: 10.9.8.7,6.5.4.3\n"+ + "\n"); + assertThat(response, Matchers.containsString("200 OK")); + assertEquals("http",_results.poll()); + assertEquals("myhost",_results.poll()); + assertEquals("80",_results.poll()); + assertEquals("10.9.8.7",_results.poll()); + assertEquals("0",_results.poll()); + } + @Test public void testLegacyProto() throws Exception { From 9496cef9b2685af74b6f21cabe2cb393ae843091 Mon Sep 17 00:00:00 2001 From: John Gardiner Myers Date: Wed, 29 Mar 2017 18:17:52 -0700 Subject: [PATCH 2/2] Allow for easier subclassing of the HttpChannelOverHTTP2. (#1421) Signed-off-by: John Gardiner Myers --- .../jetty/http2/server/HTTP2ServerConnection.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/jetty-http2/http2-server/src/main/java/org/eclipse/jetty/http2/server/HTTP2ServerConnection.java b/jetty-http2/http2-server/src/main/java/org/eclipse/jetty/http2/server/HTTP2ServerConnection.java index 0eb2c56ce8d1..e8f129960217 100644 --- a/jetty-http2/http2-server/src/main/java/org/eclipse/jetty/http2/server/HTTP2ServerConnection.java +++ b/jetty-http2/http2-server/src/main/java/org/eclipse/jetty/http2/server/HTTP2ServerConnection.java @@ -213,7 +213,7 @@ private HttpChannelOverHTTP2 provideHttpChannel(Connector connector, IStream str { HttpTransportOverHTTP2 transport = new HttpTransportOverHTTP2(connector, this); transport.setStream(stream); - channel = new ServerHttpChannelOverHTTP2(connector, httpConfig, getEndPoint(), transport); + channel = newServerHttpChannelOverHTTP2(connector, httpConfig, transport); if (LOG.isDebugEnabled()) LOG.debug("Creating channel {} for {}", channel, this); } @@ -221,6 +221,11 @@ private HttpChannelOverHTTP2 provideHttpChannel(Connector connector, IStream str return channel; } + protected ServerHttpChannelOverHTTP2 newServerHttpChannelOverHTTP2(Connector connector, HttpConfiguration httpConfig, HttpTransportOverHTTP2 transport) + { + return new ServerHttpChannelOverHTTP2(connector, httpConfig, getEndPoint(), transport); + } + private void offerChannel(HttpChannelOverHTTP2 channel) { synchronized (this) @@ -271,7 +276,7 @@ public boolean upgrade(Request request) return true; } - private class ServerHttpChannelOverHTTP2 extends HttpChannelOverHTTP2 implements ExecutionStrategy.Rejectable + protected class ServerHttpChannelOverHTTP2 extends HttpChannelOverHTTP2 implements ExecutionStrategy.Rejectable { public ServerHttpChannelOverHTTP2(Connector connector, HttpConfiguration configuration, EndPoint endPoint, HttpTransportOverHTTP2 transport) {