This is an automated email from the ASF dual-hosted git repository. schultz pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/master by this push: new eed9426 Add test including port numbers in various places. eed9426 is described below commit eed94263926e6fba061ed4a56e961b2aab1b17df Author: Christopher Schultz <ch...@christopherschultz.net> AuthorDate: Thu Jul 30 17:25:05 2020 -0400 Add test including port numbers in various places. --- .../apache/catalina/valves/TestRemoteIpValve.java | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/test/org/apache/catalina/valves/TestRemoteIpValve.java b/test/org/apache/catalina/valves/TestRemoteIpValve.java index 5fc43f9..036cf1a 100644 --- a/test/org/apache/catalina/valves/TestRemoteIpValve.java +++ b/test/org/apache/catalina/valves/TestRemoteIpValve.java @@ -1133,6 +1133,62 @@ public class TestRemoteIpValve { request.getAttribute(Globals.REQUEST_FORWARDED_ATTRIBUTE)); } + @Test + public void testRequestForwardedForWithPortNumber() throws Exception { + + // PREPARE + RemoteIpValve remoteIpValve = new RemoteIpValve(); + RemoteAddrAndHostTrackerValve remoteAddrAndHostTrackerValve = new RemoteAddrAndHostTrackerValve(); + remoteIpValve.setNext(remoteAddrAndHostTrackerValve); + + Request request = new MockRequest(); + request.setCoyoteRequest(new org.apache.coyote.Request()); + // client ip + request.setRemoteAddr("192.168.0.10"); + request.setRemoteHost("192.168.0.10"); + request.getCoyoteRequest().getMimeHeaders().addValue("x-forwarded-for").setString("140.211.11.130:1234"); + // protocol + request.setServerPort(8080); + request.getCoyoteRequest().scheme().setString("http"); + + // TEST + remoteIpValve.invoke(request, null); + + // VERIFY + + Assert.assertEquals("140.211.11.130:1234", remoteAddrAndHostTrackerValve.getRemoteAddr()); + } + + @Test + public void testRequestForwardedForWithProxyPortNumber() throws Exception { + + // PREPARE + RemoteIpValve remoteIpValve = new RemoteIpValve(); + //remoteIpValve.setRemoteIpHeader("x-forwarded-for"); + //remoteIpValve.setProtocolHeader("x-forwarded-proto"); + RemoteAddrAndHostTrackerValve remoteAddrAndHostTrackerValve = new RemoteAddrAndHostTrackerValve(); + remoteIpValve.setNext(remoteAddrAndHostTrackerValve); + + Request request = new MockRequest(); + request.setCoyoteRequest(new org.apache.coyote.Request()); + // client ip + request.setRemoteAddr("192.168.0.10"); + request.setRemoteHost("192.168.0.10"); + // Trust c.d + remoteIpValve.setTrustedProxies("foo\\.bar:123"); + request.getCoyoteRequest().getMimeHeaders().addValue("x-forwarded-for").setString("140.211.11.130:1234, foo.bar:123"); + // protocol + request.setServerPort(8080); + request.getCoyoteRequest().scheme().setString("http"); + + // TEST + remoteIpValve.invoke(request, null); + + // VERIFY + + Assert.assertEquals("140.211.11.130:1234", remoteAddrAndHostTrackerValve.getRemoteAddr()); + } + private void assertArrayEquals(String[] expected, String[] actual) { if (expected == null) { Assert.assertNull(actual); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org