summaryrefslogtreecommitdiffstats
path: root/security-utils
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2018-11-26 15:37:53 +0100
committerBjørn Christian Seime <bjorncs@oath.com>2018-11-26 15:40:20 +0100
commit5a752f667d9b517c0bdcf6cc4d343ba377c7009f (patch)
tree03c266f7cb8cab4b0c81e0263a0a8f06d1ad494c /security-utils
parent5fda15658e85d4c0bf7c52e9afa07a6aae072c25 (diff)
Escape '!' which is also a regex meta character
Diffstat (limited to 'security-utils')
-rw-r--r--security-utils/src/main/java/com/yahoo/security/tls/policy/HostGlobPattern.java6
-rw-r--r--security-utils/src/test/java/com/yahoo/security/tls/policy/HostGlobPatternTest.java6
2 files changed, 6 insertions, 6 deletions
diff --git a/security-utils/src/main/java/com/yahoo/security/tls/policy/HostGlobPattern.java b/security-utils/src/main/java/com/yahoo/security/tls/policy/HostGlobPattern.java
index f667d832d9e..c7acf5dfbeb 100644
--- a/security-utils/src/main/java/com/yahoo/security/tls/policy/HostGlobPattern.java
+++ b/security-utils/src/main/java/com/yahoo/security/tls/policy/HostGlobPattern.java
@@ -35,7 +35,7 @@ public class HostGlobPattern {
} else if (c == '?') {
// Same applies for single chars; they should only match _within_ a dot boundary.
builder.append("[^.]");
- } else if (isSpecialCharacter(c)){
+ } else if (isRegexMetaCharacter(c)){
builder.append("\\");
builder.append(c);
} else {
@@ -46,8 +46,8 @@ public class HostGlobPattern {
return Pattern.compile(builder.toString());
}
- private static boolean isSpecialCharacter(char c) {
- return "\\.[]{}()<>*+-=?^$|".indexOf(c) != -1;
+ private static boolean isRegexMetaCharacter(char c) {
+ return "<([{\\^-=$!|]})?*+.>".indexOf(c) != -1; // note: includes '?' and '*'
}
@Override
diff --git a/security-utils/src/test/java/com/yahoo/security/tls/policy/HostGlobPatternTest.java b/security-utils/src/test/java/com/yahoo/security/tls/policy/HostGlobPatternTest.java
index d03ca14a728..ebec5605621 100644
--- a/security-utils/src/test/java/com/yahoo/security/tls/policy/HostGlobPatternTest.java
+++ b/security-utils/src/test/java/com/yahoo/security/tls/policy/HostGlobPatternTest.java
@@ -59,11 +59,11 @@ public class HostGlobPatternTest {
}
@Test
- public void regex_special_characters_are_matched_as_literal_characters() {
- assertTrue(globMatches("\\.[]{}()<>+-=^$|", "\\.[]{}()<>+-=^$|"));
+ public void other_regex_meta_characters_are_matched_as_literal_characters() {
+ assertTrue(globMatches("<([{\\^-=$!|]})+.>", "<([{\\^-=$!|]})+.>"));
}
private static boolean globMatches(String pattern, String value) {
return new HostGlobPattern(pattern).matches(value);
}
-} \ No newline at end of file
+}