Skip to content

Commit fa467f4

Browse files
committed
Assert
1 parent b23f04c commit fa467f4

File tree

5 files changed

+8
-6
lines changed

5 files changed

+8
-6
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1031,7 +1031,7 @@ public static String combineSelectorExpression(String baseExpression, @Nullable
10311031
: (baseExpression + SelectorResolver.SELECTOR_SEPARATOR + selectorExpression);
10321032
}
10331033

1034-
public static void assertExpressionHasDefaultOrDataSelector(String expression) {
1034+
public static void assertExpressionHasNullOrDataSelector(String expression) {
10351035
if (Assertions.ENABLED) {
10361036
var tuple = splitSelectorExpression(expression);
10371037
assert tuple.v2() == null || IndexComponentSelector.DATA.getKey().equals(tuple.v2())

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/permission/IndicesPermission.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ public boolean checkResourcePrivileges(
319319
combineIndexGroups && checkForIndexPatterns.stream().anyMatch(Automatons::isLuceneRegex)
320320
);
321321
for (String forIndexPattern : checkForIndexPatterns) {
322-
IndexNameExpressionResolver.assertExpressionHasDefaultOrDataSelector(forIndexPattern);
322+
IndexNameExpressionResolver.assertExpressionHasNullOrDataSelector(forIndexPattern);
323323
Automaton checkIndexAutomaton = Automatons.patterns(forIndexPattern);
324324
if (false == allowRestrictedIndices && false == isConcreteRestrictedIndex(forIndexPattern)) {
325325
checkIndexAutomaton = Automatons.minusAndMinimize(checkIndexAutomaton, restrictedIndices.getAutomaton());

x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/TransportDownsampleAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,8 @@ protected void masterOperation(
210210
) {
211211
long startTime = client.threadPool().relativeTimeInMillis();
212212
String sourceIndexName = request.getSourceIndex();
213-
IndexNameExpressionResolver.assertExpressionHasDefaultOrDataSelector(sourceIndexName);
214-
IndexNameExpressionResolver.assertExpressionHasDefaultOrDataSelector(request.getTargetIndex());
213+
IndexNameExpressionResolver.assertExpressionHasNullOrDataSelector(sourceIndexName);
214+
IndexNameExpressionResolver.assertExpressionHasNullOrDataSelector(request.getTargetIndex());
215215
final IndicesAccessControl indicesAccessControl = threadContext.getTransient(AuthorizationServiceField.INDICES_PERMISSIONS_KEY);
216216
if (indicesAccessControl != null) {
217217
final IndicesAccessControl.IndexAccessControl indexPermissions = indicesAccessControl.getIndexPermissions(sourceIndexName);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2211,7 +2211,7 @@ public Function<String, FieldPredicate> getFieldFilter() {
22112211
return FieldPredicate.ACCEPT_ALL;
22122212
}
22132213
assert indicesAccessControl.isGranted();
2214-
IndexNameExpressionResolver.assertExpressionHasDefaultOrDataSelector(index);
2214+
IndexNameExpressionResolver.assertExpressionHasNullOrDataSelector(index);
22152215
IndicesAccessControl.IndexAccessControl indexPermissions = indicesAccessControl.getIndexPermissions(index);
22162216
if (indexPermissions == null) {
22172217
return FieldPredicate.ACCEPT_ALL;

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@ static String getPutMappingIndexOrAlias(
438438
ProjectMetadata projectMetadata
439439
) {
440440
final String concreteIndexName = request.getConcreteIndex().getName();
441+
assert IndexNameExpressionResolver.hasSelectorSuffix(concreteIndexName) == false : "selectors are not allowed in this context";
441442

442443
// validate that the concrete index exists, otherwise there is no remapping that we could do
443444
final IndexAbstraction indexAbstraction = projectMetadata.getIndicesLookup().get(concreteIndexName);
@@ -464,6 +465,7 @@ static String getPutMappingIndexOrAlias(
464465
if (aliasMetadata != null) {
465466
Optional<String> foundAlias = aliasMetadata.stream().map(AliasMetadata::alias).filter(aliasName -> {
466467
// we know this is implicit data access (as opposed to another selector) so the default selector check is correct
468+
assert IndexNameExpressionResolver.hasSelectorSuffix(aliasName) == false : "selectors are not allowed in this context";
467469
if (false == isAuthorized.test(aliasName, IndexComponentSelector.DATA)) {
468470
return false;
469471
}
@@ -511,7 +513,7 @@ private static List<String> replaceWildcardsWithAuthorizedAliases(String[] alias
511513
}
512514

513515
for (String aliasExpression : aliases) {
514-
IndexNameExpressionResolver.assertExpressionHasDefaultOrDataSelector(aliasExpression);
516+
IndexNameExpressionResolver.assertExpressionHasNullOrDataSelector(aliasExpression);
515517
boolean include = true;
516518
if (aliasExpression.charAt(0) == '-') {
517519
include = false;

0 commit comments

Comments
 (0)