You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pa...@apache.org on 2021/03/05 13:03:02 UTC
[wicket] branch master updated: Cleanup code and updated tests for
new getRemoteAddr behavior
This is an automated email from the ASF dual-hosted git repository.
papegaaij pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git
The following commit(s) were added to refs/heads/master by this push:
new a9adfe6 Cleanup code and updated tests for new getRemoteAddr behavior
a9adfe6 is described below
commit a9adfe62931c97dde55ccf21c4c91e1992aecf08
Author: Emond Papegaaij <em...@topicus.nl>
AuthorDate: Fri Mar 5 14:02:39 2021 +0100
Cleanup code and updated tests for new getRemoteAddr behavior
---
.../protocol/http/request/WebClientInfo.java | 5 --
.../protocol/http/request/WebClientInfoTest.java | 64 +---------------------
2 files changed, 2 insertions(+), 67 deletions(-)
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java
index d8e552c..dc3d2c4 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java
@@ -16,18 +16,13 @@
*/
package org.apache.wicket.protocol.http.request;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
import java.util.Locale;
-import javax.servlet.http.HttpServletRequest;
-
import org.apache.wicket.core.request.ClientInfo;
import org.apache.wicket.markup.html.pages.BrowserInfoPage;
import org.apache.wicket.protocol.http.ClientProperties;
import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.util.string.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java
index 2c01d91..02b0b10 100644
--- a/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java
@@ -25,9 +25,7 @@ import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
import org.apache.wicket.request.cycle.RequestCycle;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
/**
* Tests the WebClientInfo class
@@ -54,75 +52,17 @@ class WebClientInfoTest
}
/**
- * Test X-Forwarded-For ip address extraction.
- */
- @Test
- void testExtractFromXForwardedForHeader()
- {
- String expected = "127.0.0.1";
- when(webRequest.getHeader("X-Forwarded-For")).thenReturn(expected);
- WebClientInfo clientInfo = new WebClientInfo(requestCycleMock, "No user agent");
- String actual = clientInfo.getRemoteAddr(requestCycleMock);
- assertEquals(expected, actual);
- Mockito.verifyNoInteractions(servletRequest);
- }
-
- /**
- * Test X-Forwarded-For ip address extraction with fallback when no ip is contained.
- *
- * Note mgrigorov: this test could fail in network setups where unknown addresses, like "blah",
- * will resolve to some DNS service saying "'blah' domain is free. Buy it."
- */
- @Test
- @Disabled
- void testExtractFromContainerRequestUnknownXForwardedFor()
- {
- String expected = "10.17.37.8";
- when(servletRequest.getRemoteAddr()).thenReturn(expected);
- when(webRequest.getHeader("X-Forwarded-For")).thenReturn("unknown");
- WebClientInfo clientInfo = new WebClientInfo(requestCycleMock, "No user agent");
- String actual = clientInfo.getRemoteAddr(requestCycleMock);
- assertEquals(expected, actual);
- }
-
- /**
* Test default ip address extraction for container request.
*/
@Test
void testExtractFromContainerRequestNoXForwardedFor()
{
String expected = "10.17.37.8";
+ String invalid = "10.17.9.55";
when(servletRequest.getRemoteAddr()).thenReturn(expected);
+ when(webRequest.getHeader("X-Forwarded-For")).thenReturn(invalid);
WebClientInfo clientInfo = new WebClientInfo(requestCycleMock, "No user agent");
String actual = clientInfo.getRemoteAddr(requestCycleMock);
assertEquals(expected, actual);
}
-
- /**
- * Test X-Forwarded-For ip address extraction when proxy chain is given.
- */
- @Test
- void testExtractFromXForwardedForHeaderChainedIps()
- {
- String expected = "10.17.37.156";
- when(servletRequest.getRemoteAddr()).thenReturn("10.17.1.1");
- when(webRequest.getHeader("X-Forwarded-For")).thenReturn(expected + ", 10.17.37.1");
- WebClientInfo clientInfo = new WebClientInfo(requestCycleMock, "No user agent");
- String actual = clientInfo.getRemoteAddr(requestCycleMock);
- assertEquals(expected, actual);
- }
-
- /**
- * Test X-Forwarded-For ipv6 address extraction.
- */
- @Test
- void testExtractFromXForwardedForHeaderIPv6()
- {
- String expected = "2001:db8::1428:57";
- when(webRequest.getHeader("X-Forwarded-For")).thenReturn("2001:db8::1428:57");
- WebClientInfo clientInfo = new WebClientInfo(requestCycleMock, "No user agent");
- String actual = clientInfo.getRemoteAddr(requestCycleMock);
- assertEquals(expected, actual);
- }
-
}