Skip to content

Commit 674277a

Browse files
committed
Fix resolvers
1 parent df8c04d commit 674277a

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

server/src/main/java/org/elasticsearch/cluster/metadata/IndexAbstractionResolver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ && isIndexVisible(
118118
return finalIndices;
119119
}
120120

121-
boolean selectorsMatch(String selectorString, String authorizedSelectorString) {
121+
public static boolean selectorsMatch(String selectorString, String authorizedSelectorString) {
122122
IndexComponentSelector selector = IndexComponentSelector.getByKey(selectorString) == null
123123
? IndexComponentSelector.DATA
124124
: IndexComponentSelector.getByKey(selectorString);

x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authz/IndicesAndAliasesResolver.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -324,15 +324,19 @@ ResolvedIndices resolveIndicesAndAliases(
324324
}
325325
if (indicesOptions.expandWildcardExpressions()) {
326326
for (String authorizedIndex : authorizedIndices.all().get()) {
327-
if (IndexAbstractionResolver.isIndexVisible(
328-
"*",
329-
allIndicesPatternSelector,
330-
authorizedIndex,
331-
indicesOptions,
332-
projectMetadata,
333-
nameExpressionResolver,
334-
indicesRequest.includeDataStreams()
335-
)) {
327+
Tuple<String, String> tuple = IndexNameExpressionResolver.splitSelectorExpression(authorizedIndex);
328+
authorizedIndex = tuple.v1();
329+
String authorizedSelectorString = tuple.v2();
330+
if (IndexAbstractionResolver.selectorsMatch(allIndicesPatternSelector, authorizedSelectorString)
331+
&& IndexAbstractionResolver.isIndexVisible(
332+
"*",
333+
allIndicesPatternSelector,
334+
authorizedIndex,
335+
indicesOptions,
336+
projectMetadata,
337+
nameExpressionResolver,
338+
indicesRequest.includeDataStreams()
339+
)) {
336340
resolvedIndicesBuilder.addLocal(
337341
IndexNameExpressionResolver.combineSelectorExpression(authorizedIndex, allIndicesPatternSelector)
338342
);
@@ -480,6 +484,10 @@ private static List<String> loadAuthorizedAliases(Supplier<Set<String>> authoriz
480484
List<String> authorizedAliases = new ArrayList<>();
481485
SortedMap<String, IndexAbstraction> existingAliases = projectMetadata.getIndicesLookup();
482486
for (String authorizedIndex : authorizedIndices.get()) {
487+
Tuple<String, String> tuple = IndexNameExpressionResolver.splitSelectorExpression(authorizedIndex);
488+
authorizedIndex = tuple.v1();
489+
String authorizedSelectorString = tuple.v2();
490+
// TODO skip failures here?
483491
IndexAbstraction indexAbstraction = existingAliases.get(authorizedIndex);
484492
if (indexAbstraction != null && indexAbstraction.getType() == IndexAbstraction.Type.ALIAS) {
485493
authorizedAliases.add(authorizedIndex);

0 commit comments

Comments
 (0)