Repository: cxf Updated Branches: refs/heads/3.1.x-fixes 659084236 -> 49ba8067e
[CXF-6853]:Support encoded value in @ApplicationPath Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/49ba8067 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/49ba8067 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/49ba8067 Branch: refs/heads/3.1.x-fixes Commit: 49ba8067e9d735c48603e74cccfbcc6cdf3676f7 Parents: 6590842 Author: Jim Ma <[email protected]> Authored: Wed Mar 30 20:57:24 2016 +0800 Committer: Jim Ma <[email protected]> Committed: Wed Mar 30 20:58:16 2016 +0800 ---------------------------------------------------------------------- .../main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java | 10 ++++++++++ 1 file changed, 10 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/49ba8067/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java index e945943..05b3538 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java @@ -22,6 +22,7 @@ package org.apache.cxf.jaxrs.utils; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; +import java.net.URLDecoder; import java.nio.charset.StandardCharsets; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -499,6 +500,15 @@ public final class HttpUtils { public static String getPathToMatch(String path, String address, boolean addSlash) { int ind = path.indexOf(address); + try { + String decodeAddr = URLDecoder.decode(address, "UTF-8"); + if (ind == -1 && !address.equals(decodeAddr)) { + address = decodeAddr; + ind = path.indexOf(address); + } + } catch (UnsupportedEncodingException e) { + // + } if (ind == -1 && address.equals(path + "/")) { path += "/"; ind = 0;
