File tree Expand file tree Collapse file tree 2 files changed +14
-5
lines changed
server/src/main/java/org/elasticsearch/search/crossproject
x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authz Expand file tree Collapse file tree 2 files changed +14
-5
lines changed Original file line number Diff line number Diff line change 99
1010package org .elasticsearch .search .crossproject ;
1111
12+ import org .elasticsearch .cluster .metadata .ProjectMetadata ;
13+
1214/**
1315 * Filter for the target projects based on the provided project routing string.
1416 */
@@ -21,12 +23,14 @@ public interface ProjectRoutingResolver {
2123
2224 /**
2325 * Filters the specified TargetProjects based on the provided project routing string
24- * @param projectRouting the project_routing specified in the request object
25- * @param targetProjects The target projects to be filtered
26+ *
27+ * @param projectRouting the project_routing specified in the request object
28+ * @param projectMetadata project metadata for the origin project
29+ * @param targetProjects The target projects to be filtered
2630 * @return A new TargetProjects instance containing only the projects that match the project routing.
2731 */
28- TargetProjects resolve (String projectRouting , TargetProjects targetProjects );
32+ TargetProjects resolve (String projectRouting , ProjectMetadata projectMetadata , TargetProjects targetProjects );
2933
3034 /** No-op router - just returns the provided target projects. */
31- ProjectRoutingResolver NOOP = (projectRouting , targetProjects ) -> targetProjects ;
35+ ProjectRoutingResolver NOOP = (projectRouting , projectMetadata , targetProjects ) -> targetProjects ;
3236}
Original file line number Diff line number Diff line change @@ -404,6 +404,7 @@ ResolvedIndices resolveIndicesAndAliases(
404404 if (crossProjectModeDecider .resolvesCrossProject (replaceable )) {
405405 final var resolvedProjects = crossProjectRoutingResolver .resolve (
406406 replaceable .getProjectRouting (),
407+ projectMetadata ,
407408 authorizedProjects
408409 );
409410 final var rewritten = CrossProjectIndexExpressionsRewriter .rewriteIndexExpression (
@@ -450,7 +451,11 @@ ResolvedIndices resolveIndicesAndAliases(
450451 assert authorizedProjects != TargetProjects .LOCAL_ONLY_FOR_CPS_DISABLED
451452 : "resolving cross-project request but authorized project is local only" ;
452453
453- final var resolvedProjects = crossProjectRoutingResolver .resolve (replaceable .getProjectRouting (), authorizedProjects );
454+ final var resolvedProjects = crossProjectRoutingResolver .resolve (
455+ replaceable .getProjectRouting (),
456+ projectMetadata ,
457+ authorizedProjects
458+ );
454459
455460 final ResolvedIndexExpressions resolved = indexAbstractionResolver .resolveIndexAbstractions (
456461 Arrays .asList (replaceable .indices ()),
You can’t perform that action at this time.
0 commit comments