From 3cce5754b6f5c1da6b380bb4313bdd64c7b13996 Mon Sep 17 00:00:00 2001 From: Richard Dennehy Date: Thu, 30 Oct 2025 16:52:22 +0000 Subject: [PATCH] provide AuthorizedProjectsResolver injectable component --- .../main/java/org/elasticsearch/xpack/security/Security.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java index 8199d75a604d0..e75dde20e09cc 100644 --- a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java +++ b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/Security.java @@ -1146,6 +1146,7 @@ Collection createComponents( if (authorizationDenialMessages.get() == null) { authorizationDenialMessages.set(new AuthorizationDenialMessages.Default()); } + final var authorizedProjectsResolver = getCustomAuthorizedProjectsResolverOrDefault(extensionComponents); final AuthorizationService authzService = new AuthorizationService( settings, allRolesStore, @@ -1164,7 +1165,7 @@ Collection createComponents( authorizationDenialMessages.get(), linkedProjectConfigService, projectResolver, - getCustomAuthorizedProjectsResolverOrDefault(extensionComponents), + authorizedProjectsResolver, new CrossProjectModeDecider(settings) ); @@ -1172,6 +1173,7 @@ Collection createComponents( components.add(reservedRolesStore); // used by roles actions components.add(allRolesStore); // for SecurityInfoTransportAction and clear roles cache components.add(authzService); + components.add(new PluginComponentBinding<>(AuthorizedProjectsResolver.class, authorizedProjectsResolver)); final SecondaryAuthenticator secondaryAuthenticator = new SecondaryAuthenticator( securityContext.get(),