Skip to content

Commit eed9426

Browse files
Add test including port numbers in various places.
1 parent a9eae94 commit eed9426

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

test/org/apache/catalina/valves/TestRemoteIpValve.java

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,6 +1133,62 @@ public void testRequestForwarded() throws Exception {
11331133
request.getAttribute(Globals.REQUEST_FORWARDED_ATTRIBUTE));
11341134
}
11351135

1136+
@Test
1137+
public void testRequestForwardedForWithPortNumber() throws Exception {
1138+
1139+
// PREPARE
1140+
RemoteIpValve remoteIpValve = new RemoteIpValve();
1141+
RemoteAddrAndHostTrackerValve remoteAddrAndHostTrackerValve = new RemoteAddrAndHostTrackerValve();
1142+
remoteIpValve.setNext(remoteAddrAndHostTrackerValve);
1143+
1144+
Request request = new MockRequest();
1145+
request.setCoyoteRequest(new org.apache.coyote.Request());
1146+
// client ip
1147+
request.setRemoteAddr("192.168.0.10");
1148+
request.setRemoteHost("192.168.0.10");
1149+
request.getCoyoteRequest().getMimeHeaders().addValue("x-forwarded-for").setString("140.211.11.130:1234");
1150+
// protocol
1151+
request.setServerPort(8080);
1152+
request.getCoyoteRequest().scheme().setString("http");
1153+
1154+
// TEST
1155+
remoteIpValve.invoke(request, null);
1156+
1157+
// VERIFY
1158+
1159+
Assert.assertEquals("140.211.11.130:1234", remoteAddrAndHostTrackerValve.getRemoteAddr());
1160+
}
1161+
1162+
@Test
1163+
public void testRequestForwardedForWithProxyPortNumber() throws Exception {
1164+
1165+
// PREPARE
1166+
RemoteIpValve remoteIpValve = new RemoteIpValve();
1167+
//remoteIpValve.setRemoteIpHeader("x-forwarded-for");
1168+
//remoteIpValve.setProtocolHeader("x-forwarded-proto");
1169+
RemoteAddrAndHostTrackerValve remoteAddrAndHostTrackerValve = new RemoteAddrAndHostTrackerValve();
1170+
remoteIpValve.setNext(remoteAddrAndHostTrackerValve);
1171+
1172+
Request request = new MockRequest();
1173+
request.setCoyoteRequest(new org.apache.coyote.Request());
1174+
// client ip
1175+
request.setRemoteAddr("192.168.0.10");
1176+
request.setRemoteHost("192.168.0.10");
1177+
// Trust c.d
1178+
remoteIpValve.setTrustedProxies("foo\\.bar:123");
1179+
request.getCoyoteRequest().getMimeHeaders().addValue("x-forwarded-for").setString("140.211.11.130:1234, foo.bar:123");
1180+
// protocol
1181+
request.setServerPort(8080);
1182+
request.getCoyoteRequest().scheme().setString("http");
1183+
1184+
// TEST
1185+
remoteIpValve.invoke(request, null);
1186+
1187+
// VERIFY
1188+
1189+
Assert.assertEquals("140.211.11.130:1234", remoteAddrAndHostTrackerValve.getRemoteAddr());
1190+
}
1191+
11361192
private void assertArrayEquals(String[] expected, String[] actual) {
11371193
if (expected == null) {
11381194
Assert.assertNull(actual);

0 commit comments

Comments
 (0)