Repository: jclouds Updated Branches: refs/heads/master 82ab88d58 -> c22afc5a5
Revert "tighten the isUrlEncoded check" This reverts commit 82ab88d5896a6628f3fbb42a3c4bce39ce843fa1. Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/c22afc5a Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/c22afc5a Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/c22afc5a Branch: refs/heads/master Commit: c22afc5a55db1539d2e796f7244f9d2b3da57b5a Parents: 82ab88d Author: Andrew Gaul <[email protected]> Authored: Wed May 27 17:46:24 2015 -0700 Committer: Andrew Gaul <[email protected]> Committed: Wed May 27 17:46:24 2015 -0700 ---------------------------------------------------------------------- .../main/java/org/jclouds/util/Strings2.java | 28 +++----------------- .../java/org/jclouds/util/Strings2Test.java | 4 --- 2 files changed, 3 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/c22afc5a/core/src/main/java/org/jclouds/util/Strings2.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/jclouds/util/Strings2.java b/core/src/main/java/org/jclouds/util/Strings2.java index 25f44ad..2081c3d 100644 --- a/core/src/main/java/org/jclouds/util/Strings2.java +++ b/core/src/main/java/org/jclouds/util/Strings2.java @@ -90,33 +90,11 @@ public class Strings2 { public static boolean isCidrFormat(String in) { return CIDR_PATTERN.matcher(in).matches(); } - - // taken from https://docs.oracle.com/javase/7/docs/api/java/net/URI.html#legal-chars - private static final Pattern URL_VALID_PATTERN = Pattern.compile("[a-zA-Z0-9_\\-!.~'()*,;:$&+=?/\\[\\]@%]+"); - - private static boolean isHexadecimal(char ch) { - return (ch >= 'A' && ch <= 'F') || (ch >= 'a' && ch <= 'f') || (ch >= '0' && ch <= '9'); - } + + private static final Pattern URL_ENCODED_PATTERN = Pattern.compile(".*%[a-fA-F0-9][a-fA-F0-9].*"); public static boolean isUrlEncoded(String in) { - if (!URL_VALID_PATTERN.matcher(in).matches()) { - return false; - } - - // ensure that all % are followed by 2 hexadecimal characters - int percentIdx = 0; - while ((percentIdx = in.indexOf('%', percentIdx)) != -1) { - if (percentIdx + 2 >= in.length()) { - return false; - } - if (!isHexadecimal(in.charAt(percentIdx + 1)) || - !isHexadecimal(in.charAt(percentIdx + 2))) { - return false; - } - percentIdx += 2; - } - - return true; + return URL_ENCODED_PATTERN.matcher(in).matches(); } /** http://git-wip-us.apache.org/repos/asf/jclouds/blob/c22afc5a/core/src/test/java/org/jclouds/util/Strings2Test.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/jclouds/util/Strings2Test.java b/core/src/test/java/org/jclouds/util/Strings2Test.java index f1901b6..84fc776 100644 --- a/core/src/test/java/org/jclouds/util/Strings2Test.java +++ b/core/src/test/java/org/jclouds/util/Strings2Test.java @@ -30,10 +30,6 @@ public class Strings2Test { public void testIsEncoded() { assert Strings2.isUrlEncoded("/read-tests/%73%6f%6d%65%20%66%69%6c%65"); assert !Strings2.isUrlEncoded("/read-tests/ tep"); - assert !Strings2.isUrlEncoded("/read-tests/dealde%2Fl04 011e%204c8df"); - assert !Strings2.isUrlEncoded("/read-tests/%/"); - assert !Strings2.isUrlEncoded("/read-tests/%ZZ"); - assert Strings2.isUrlEncoded("/read-tests/%20"); } public void testNoDoubleEncode() {
