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 <emond.papega...@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); - } - }