YARN-6615. AmIpFilter drops query parameters on redirect. Contributed by Wilfred Spiegelenburg
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8bf1949c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8bf1949c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8bf1949c Branch: refs/heads/YARN-1011 Commit: 8bf1949c0efed700781eb47cf18f9f88443ed506 Parents: a62be38 Author: Jason Lowe <jl...@yahoo-inc.com> Authored: Wed May 24 11:22:42 2017 -0500 Committer: Jason Lowe <jl...@yahoo-inc.com> Committed: Wed May 24 11:22:42 2017 -0500 ---------------------------------------------------------------------- .../hadoop/yarn/server/webproxy/amfilter/AmIpFilter.java | 6 ++++++ .../hadoop/yarn/server/webproxy/amfilter/TestAmFilter.java | 8 ++++++++ 2 files changed, 14 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/8bf1949c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/amfilter/AmIpFilter.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/amfilter/AmIpFilter.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/amfilter/AmIpFilter.java index fe6fc32..6579191 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/amfilter/AmIpFilter.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/amfilter/AmIpFilter.java @@ -150,6 +150,12 @@ public class AmIpFilter implements Filter { insertPoint += PROXY_PATH.length(); redirect.insert(insertPoint, "/redirect"); } + // add the query parameters on the redirect if there were any + String queryString = httpReq.getQueryString(); + if (queryString != null && !queryString.isEmpty()) { + redirect.append("?"); + redirect.append(queryString); + } ProxyUtils.sendRedirect(httpReq, httpResp, redirect.toString()); } else { http://git-wip-us.apache.org/repos/asf/hadoop/blob/8bf1949c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/test/java/org/apache/hadoop/yarn/server/webproxy/amfilter/TestAmFilter.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/test/java/org/apache/hadoop/yarn/server/webproxy/amfilter/TestAmFilter.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/test/java/org/apache/hadoop/yarn/server/webproxy/amfilter/TestAmFilter.java index 9dc0ce0..b788f5d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/test/java/org/apache/hadoop/yarn/server/webproxy/amfilter/TestAmFilter.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/test/java/org/apache/hadoop/yarn/server/webproxy/amfilter/TestAmFilter.java @@ -176,6 +176,14 @@ public class TestAmFilter { redirect = response.getHeader(ProxyUtils.LOCATION); assertEquals("http://bogus/proxy/redirect/application_00_0", redirect); + // check for query parameters + Mockito.when(request.getRequestURI()).thenReturn("/proxy/application_00_0"); + Mockito.when(request.getQueryString()).thenReturn("id=0"); + testFilter.doFilter(request, response, chain); + assertEquals(HttpURLConnection.HTTP_MOVED_TEMP, response.status); + redirect = response.getHeader(ProxyUtils.LOCATION); + assertEquals("http://bogus/proxy/redirect/application_00_0?id=0", redirect); + // "127.0.0.1" contains in host list. Without cookie Mockito.when(request.getRemoteAddr()).thenReturn("127.0.0.1"); testFilter.doFilter(request, response, chain); --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org