diff --git a/CHANGELOG.md b/CHANGELOG.md index e1ad72b45b..1f187c4f3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### Enhancements ### Bug Fixes +- Create a WildcardMatcher.NONE when creating a WildcardMatcher with an empty string ([#5694](https://github.com/opensearch-project/security/pull/5694)) ### Refactoring diff --git a/src/main/java/org/opensearch/security/support/WildcardMatcher.java b/src/main/java/org/opensearch/security/support/WildcardMatcher.java index 6f73f5dc49..0f30210cdb 100644 --- a/src/main/java/org/opensearch/security/support/WildcardMatcher.java +++ b/src/main/java/org/opensearch/security/support/WildcardMatcher.java @@ -162,7 +162,7 @@ public String toString() { }; public static WildcardMatcher from(String pattern) { - if (pattern == null) { + if (pattern == null || pattern.isBlank()) { return NONE; } else if (pattern.equals("*")) { return ANY; diff --git a/src/test/java/org/opensearch/security/UtilTests.java b/src/test/java/org/opensearch/security/UtilTests.java index 8352645c19..f357e59221 100644 --- a/src/test/java/org/opensearch/security/UtilTests.java +++ b/src/test/java/org/opensearch/security/UtilTests.java @@ -77,6 +77,9 @@ public void testWildcardMatcherClasses() { assertTrue(wc("abc").test("abc")); assertFalse(wc("ABC").test("abc")); assertFalse(wc(null).test("abc")); + assertFalse(wc("").test("abc")); + // Creating a WildcardMatcher with blank should create a matcher that matches nothing + assertFalse(wc("").test("")); assertTrue(WildcardMatcher.from(null, "abc").test("abc")); }