diff options
author | Thomas Watson | 2017-05-24 14:51:59 +0000 |
---|---|---|
committer | Thomas Watson | 2017-05-24 14:52:55 +0000 |
commit | 0430d1aafb7733c7ffef0a4678bbc5ca88c2e21d (patch) | |
tree | 64f1eb4cdb7bd04b9bfbb7afcd5617d8434ecacc | |
parent | 30a0be239cbb30c7ec10345bcaa31470a86646a3 (diff) | |
download | rt.equinox.bundles-I20170531-2000.tar.gz rt.equinox.bundles-I20170531-2000.tar.xz rt.equinox.bundles-I20170531-2000.zip |
Revert "Bug 497510 - [http]Y20170622-1000Y20170620-0625Y20170619-2325Y20170618-0415Y20170608-1000Y20170601-1000Y20170525-1000S4_7_0_RC4aS4_7_0_RC4S4_7_0_RC3S4_7_0_RC2R4_7I20170614-2000I20170613-2000I20170612-0950I20170610-0940I20170608-0530I20170607-2000I20170607-1100I20170607-0800I20170607-0215I20170606-2000I20170606-0800I20170605-2000I20170605-0800I20170604-2000I20170604-0800I20170603-1500I20170603-0800I20170603-0100I20170602-2000I20170531-2000I20170531-0800I20170530-2000I20170530-0800I20170529-2000I20170529-0800I20170528-2000I20170528-0800I20170527-1500I20170527-0800I20170526-2000I20170524-2000
HttpServletRequestWrapperImpl::getRequestUri()"
This reverts commit 3eb1d9e3c39039085c5a6298eb6be6ae12c74760.
Change-Id: I655087a9ea5beff49c3d6f3245d837f1481efee7
Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
6 files changed, 7 insertions, 113 deletions
diff --git a/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/DispatchingTest.java b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/DispatchingTest.java index a3711f5c9..c9a9990d2 100644 --- a/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/DispatchingTest.java +++ b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/DispatchingTest.java @@ -1576,61 +1576,4 @@ public class DispatchingTest extends BaseTest { Assert.assertEquals(10, counter.get()); } - @Test - public void test_Bug497510_1() throws Exception { - Servlet servlet = new HttpServlet() { - private static final long serialVersionUID = 1L; - - @Override - protected void doGet( - final HttpServletRequest req, final HttpServletResponse resp) - throws ServletException, IOException { - - String requestURI = req.getRequestURI(); - - Assert.assertNotNull(requestURI); - - PrintWriter writer = resp.getWriter(); - writer.write(requestURI); - } - }; - - Dictionary<String, Object> props = new Hashtable<String, Object>(); - props.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME, "Bug497510"); - props.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN, "/Bug497510/*"); - registrations.add(getBundleContext().registerService(Servlet.class, servlet, props)); - - String result = requestAdvisor.request("Bug497510/a%20b%20c"); - - Assert.assertEquals("/Bug497510/a%20b%20c", result); - } - - @Test - public void test_Bug497510_2() throws Exception { - Servlet servlet = new HttpServlet() { - private static final long serialVersionUID = 1L; - - @Override - protected void doGet( - final HttpServletRequest req, final HttpServletResponse resp) - throws ServletException, IOException { - - String requestURI = req.getRequestURI(); - - Assert.assertNotNull(requestURI); - - PrintWriter writer = resp.getWriter(); - writer.write(requestURI); - } - }; - - Dictionary<String, Object> props = new Hashtable<String, Object>(); - props.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME, "Bug 497510"); - props.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN, "/Bug 497510/*"); - registrations.add(getBundleContext().registerService(Servlet.class, servlet, props)); - - String result = requestAdvisor.request("Bug%20497510/a%20b%20c"); - - Assert.assertEquals("/Bug%20497510/a%20b%20c", result); - } }
\ No newline at end of file diff --git a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/FilterRegistration.java b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/FilterRegistration.java index 5e68ec68b..27975ca81 100644 --- a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/FilterRegistration.java +++ b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/FilterRegistration.java @@ -38,7 +38,6 @@ public class FilterRegistration private final ContextController contextController; private final boolean initDestoyWithContextController; private final Pattern[] compiledRegexs; - private final boolean needDecode; public FilterRegistration( ServiceHolder<Filter> filterHolder, FilterDTO filterDTO, int priority, @@ -71,7 +70,6 @@ public class FilterRegistration } else { initDestoyWithContextController = true; } - needDecode = MatchableRegistration.patternsRequireDecode(filterDTO.patterns); } public int compareTo(FilterRegistration otherFilterRegistration) { @@ -274,9 +272,4 @@ public class FilterRegistration return patterns; } - @Override - public boolean needDecode() { - return needDecode; - } - } diff --git a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/MatchableRegistration.java b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/MatchableRegistration.java index 4da830e57..941437885 100644 --- a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/MatchableRegistration.java +++ b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/MatchableRegistration.java @@ -11,9 +11,6 @@ package org.eclipse.equinox.http.servlet.internal.registration; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import java.net.URLEncoder; import org.eclipse.equinox.http.servlet.internal.servlet.Match; import org.eclipse.equinox.http.servlet.internal.util.Const; import org.osgi.dto.DTO; @@ -28,14 +25,12 @@ public abstract class MatchableRegistration<T, D extends DTO> super(t, d); } - public abstract boolean needDecode(); - public abstract String match( String name, String servletPath, String pathInfo, String extension, Match match); - private boolean isPathWildcardMatch( - String pattern, String servletPath) { + protected boolean isPathWildcardMatch( + String pattern, String servletPath, String pathInfo) { int cpl = pattern.length() - 2; @@ -52,18 +47,11 @@ public abstract class MatchableRegistration<T, D extends DTO> return false; } - final protected boolean doMatch( + protected boolean doMatch( String pattern, String servletPath, String pathInfo, String extension, Match match) throws IllegalArgumentException { - if (needDecode()) { - try { - servletPath = URLDecoder.decode(servletPath, "UTF-8"); //$NON-NLS-1$ - } - catch (UnsupportedEncodingException e) { - // do nothing - } - } + if (match == Match.EXACT) { return pattern.equals(servletPath); } @@ -78,7 +66,7 @@ public abstract class MatchableRegistration<T, D extends DTO> } if ((match == Match.REGEX) && isPathWildcardMatch( - pattern, servletPath)) { + pattern, servletPath, pathInfo)) { return true; } @@ -100,18 +88,4 @@ public abstract class MatchableRegistration<T, D extends DTO> return false; } - static boolean patternsRequireDecode(String[] patterns) { - for (String pattern : patterns) { - try { - String encode = URLEncoder.encode(pattern, "UTF-8"); //$NON-NLS-1$ - if (!encode.equals(pattern)) { - return true; - } - } - catch (UnsupportedEncodingException e) { - // do nothing - } - } - return false; - } }
\ No newline at end of file diff --git a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/ResourceRegistration.java b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/ResourceRegistration.java index ff10f1bc4..fc6ac646d 100644 --- a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/ResourceRegistration.java +++ b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/ResourceRegistration.java @@ -29,7 +29,6 @@ public class ResourceRegistration extends EndpointRegistration<ResourceDTO> { super(servletHolder, resourceDTO, servletContextHelper, contextController, legacyTCCL); name = servletHolder.get().getClass().getName().concat("#").concat(getD().prefix); //$NON-NLS-1$ - needDecode = MatchableRegistration.patternsRequireDecode(resourceDTO.patterns); } @Override @@ -47,12 +46,6 @@ public class ResourceRegistration extends EndpointRegistration<ResourceDTO> { return getD().serviceId; } - @Override - public boolean needDecode() { - return needDecode; - } - - private final boolean needDecode; private final String name; } diff --git a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/ServletRegistration.java b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/ServletRegistration.java index be982f459..63267f9e5 100644 --- a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/ServletRegistration.java +++ b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/registration/ServletRegistration.java @@ -66,7 +66,6 @@ public class ServletRegistration extends EndpointRegistration<ExtendedServletDTO else { multipartSupport = null; } - needDecode = MatchableRegistration.patternsRequireDecode(servletDTO.patterns); } public ErrorPageDTO getErrorPageDTO() { @@ -117,12 +116,8 @@ public class ServletRegistration extends EndpointRegistration<ExtendedServletDTO return multipartSupport.parseRequest(request); } - @Override - public boolean needDecode() { - return needDecode; - } - private final boolean needDecode; private final ErrorPageDTO errorPageDTO; private final MultipartSupport multipartSupport; + } diff --git a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/servlet/ProxyServlet.java b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/servlet/ProxyServlet.java index 82b21b28b..08ec8f160 100644 --- a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/servlet/ProxyServlet.java +++ b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/servlet/ProxyServlet.java @@ -62,11 +62,7 @@ public class ProxyServlet extends HttpServlet { checkRuntime(); - String alias = request.getRequestURI(); - - if (request.getDispatcherType() == DispatcherType.INCLUDE) { - alias = (String)request.getAttribute(RequestDispatcher.INCLUDE_REQUEST_URI); - } + String alias = HttpServletRequestWrapperImpl.getDispatchPathInfo(request); if (alias == null) { alias = Const.SLASH; |