This is an automated email from the ASF dual-hosted git repository. schultz pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push: new 74298d4 Add test including port numbers in various places. 74298d4 is described below commit 74298d4e7dce1723fd7e9b57af6b4bd7a097b212 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 d2f7040..a428ba7 100644 --- a/test/org/apache/catalina/valves/TestRemoteIpValve.java +++ b/test/org/apache/catalina/valves/TestRemoteIpValve.java @@ -1128,6 +1128,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