diff --git a/src/integrationTest/java/org/opensearch/security/privileges/IndexPatternTest.java b/src/integrationTest/java/org/opensearch/security/privileges/IndexPatternTest.java index 4b883183dc..72ec0a672a 100644 --- a/src/integrationTest/java/org/opensearch/security/privileges/IndexPatternTest.java +++ b/src/integrationTest/java/org/opensearch/security/privileges/IndexPatternTest.java @@ -139,7 +139,7 @@ public void dateMathIndex() throws Exception { IndexPattern indexPattern = IndexPattern.from(""); assertFalse(indexPattern.hasStaticPattern()); assertTrue(indexPattern.hasDynamicPattern()); - assertEquals("index_a11", indexPattern.toString()); + assertEquals("", indexPattern.toString()); assertTrue(indexPattern.matches("index_year_" + CURRENT_YEAR, ctx(), INDEX_METADATA.getIndicesLookup())); assertFalse(indexPattern.matches("index_year_" + NEXT_YEAR, ctx(), INDEX_METADATA.getIndicesLookup())); diff --git a/src/main/java/org/opensearch/security/privileges/IndexPattern.java b/src/main/java/org/opensearch/security/privileges/IndexPattern.java index 2def420cf0..f4ebe25818 100644 --- a/src/main/java/org/opensearch/security/privileges/IndexPattern.java +++ b/src/main/java/org/opensearch/security/privileges/IndexPattern.java @@ -35,14 +35,14 @@ public class IndexPattern { /** * An IndexPattern which does not match any index. */ - public static final IndexPattern EMPTY = new IndexPattern(null, ImmutableList.of(), ImmutableList.of()); + public static final IndexPattern EMPTY = new IndexPattern(WildcardMatcher.NONE, ImmutableList.of(), ImmutableList.of()); private final WildcardMatcher staticPattern; private final ImmutableList patternTemplates; private final ImmutableList dateMathExpressions; private final int hashCode; - public IndexPattern(WildcardMatcher staticPattern, ImmutableList patternTemplates, ImmutableList dateMathExpressions) { + private IndexPattern(WildcardMatcher staticPattern, ImmutableList patternTemplates, ImmutableList dateMathExpressions) { this.staticPattern = staticPattern; this.patternTemplates = patternTemplates; this.dateMathExpressions = dateMathExpressions; @@ -52,7 +52,7 @@ public IndexPattern(WildcardMatcher staticPattern, ImmutableList pattern public boolean matches(String index, PrivilegesEvaluationContext context, Map indexMetadata) throws PrivilegesEvaluationException { - if (staticPattern != null && staticPattern.test(index)) { + if (staticPattern != WildcardMatcher.NONE && staticPattern.test(index)) { return true; } @@ -116,14 +116,32 @@ public boolean matches(String index, PrivilegesEvaluationContext context, Map source) { IndexPattern build() { return new IndexPattern( - constantPatterns.size() != 0 ? WildcardMatcher.from(constantPatterns) : null, + constantPatterns.size() != 0 ? WildcardMatcher.from(constantPatterns) : WildcardMatcher.NONE, ImmutableList.copyOf(patternTemplates), ImmutableList.copyOf(dateMathExpressions) );