Skip to content

Commit f943168

Browse files
Removes singleton pattern from ResourcePluginInfo
Signed-off-by: Darshit Chanpura <[email protected]>
1 parent 5ecac3a commit f943168

File tree

3 files changed

+17
-16
lines changed

3 files changed

+17
-16
lines changed

src/main/java/org/opensearch/security/OpenSearchSecurityPlugin.java

+12-4
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
import java.util.stream.Collectors;
5959
import java.util.stream.Stream;
6060

61+
import com.google.common.annotations.VisibleForTesting;
6162
import com.google.common.collect.Lists;
6263
import org.apache.commons.lang3.StringUtils;
6364
import org.apache.logging.log4j.LogManager;
@@ -300,6 +301,7 @@ public final class OpenSearchSecurityPlugin extends OpenSearchSecuritySSLPlugin
300301
private volatile PasswordHasher passwordHasher;
301302
private volatile DlsFlsBaseContext dlsFlsBaseContext;
302303
private ResourceSharingIndexManagementRepository resourceSharingIndexManagementRepository;
304+
private static final ResourcePluginInfo resourcePluginInfo = new ResourcePluginInfo();
303305

304306
public static boolean isActionTraceEnabled() {
305307

@@ -771,7 +773,7 @@ public void onIndexModule(IndexModule indexModule) {
771773
if (settings.getAsBoolean(
772774
ConfigConstants.OPENSEARCH_RESOURCE_SHARING_ENABLED,
773775
ConfigConstants.OPENSEARCH_RESOURCE_SHARING_ENABLED_DEFAULT
774-
) && ResourcePluginInfo.getInstance().getResourceIndices().contains(indexModule.getIndex().getName())) {
776+
) && resourcePluginInfo.getResourceIndices().contains(indexModule.getIndex().getName())) {
775777
indexModule.addIndexOperationListener(resourceIndexListener);
776778
log.info("Security plugin started listening to operations on resource-index {}", indexModule.getIndex().getName());
777779
}
@@ -1182,7 +1184,8 @@ public Collection<Object> createComponents(
11821184

11831185
final var resourceSharingIndex = ResourceSharingConstants.OPENSEARCH_RESOURCE_SHARING_INDEX;
11841186
ResourceSharingIndexHandler rsIndexHandler = new ResourceSharingIndexHandler(resourceSharingIndex, localClient, threadPool);
1185-
ResourceAccessHandler resourceAccessHandler = new ResourceAccessHandler(threadPool, rsIndexHandler, adminDns);
1187+
1188+
ResourceAccessHandler resourceAccessHandler = new ResourceAccessHandler(threadPool, rsIndexHandler, adminDns, resourcePluginInfo);
11861189
// Resource Sharing index is enabled by default
11871190
boolean isResourceSharingEnabled = settings.getAsBoolean(
11881191
ConfigConstants.OPENSEARCH_RESOURCE_SHARING_ENABLED,
@@ -2320,12 +2323,17 @@ public void loadExtensions(ExtensiblePlugin.ExtensionLoader loader) {
23202323
resourceProviders.put(resourceIndexName, resourceProvider);
23212324
log.info("Loaded resource sharing extension: {}, index: {}", resourceType, resourceIndexName);
23222325
}
2323-
ResourcePluginInfo.getInstance().setResourceIndices(resourceIndices);
2324-
ResourcePluginInfo.getInstance().setResourceProviders(resourceProviders);
2326+
resourcePluginInfo.setResourceIndices(resourceIndices);
2327+
resourcePluginInfo.setResourceProviders(resourceProviders);
23252328
}
23262329
}
23272330
// CS-ENFORCE-SINGLE
23282331

2332+
@VisibleForTesting
2333+
public static ResourcePluginInfo getResourcePluginInfo() {
2334+
return resourcePluginInfo;
2335+
}
2336+
23292337
public static class GuiceHolder implements LifecycleComponent {
23302338

23312339
private static RepositoriesService repositoriesService;

src/main/java/org/opensearch/security/resources/ResourceAccessHandler.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,18 @@ public class ResourceAccessHandler {
4949
private final ThreadContext threadContext;
5050
private final ResourceSharingIndexHandler resourceSharingIndexHandler;
5151
private final AdminDNs adminDNs;
52+
private final ResourcePluginInfo resourcePluginInfo;
5253

5354
public ResourceAccessHandler(
5455
final ThreadPool threadPool,
5556
final ResourceSharingIndexHandler resourceSharingIndexHandler,
56-
AdminDNs adminDns
57+
AdminDNs adminDns,
58+
ResourcePluginInfo resourcePluginInfo
5759
) {
5860
this.threadContext = threadPool.getThreadContext();
5961
this.resourceSharingIndexHandler = resourceSharingIndexHandler;
6062
this.adminDNs = adminDns;
63+
this.resourcePluginInfo = resourcePluginInfo;
6164
}
6265

6366
/**
@@ -161,8 +164,7 @@ public <T extends ShareableResource> void getAccessibleResourcesForCurrentUser(S
161164
try {
162165
validateArguments(resourceIndex);
163166

164-
ShareableResourceParser<T> parser = (ShareableResourceParser<T>) ResourcePluginInfo.getInstance()
165-
.getResourceProviders()
167+
ShareableResourceParser<T> parser = (ShareableResourceParser<T>) resourcePluginInfo.getResourceProviders()
166168
.get(resourceIndex)
167169
.shareableResourceParser();
168170

src/main/java/org/opensearch/security/resources/ResourcePluginInfo.java

-9
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,6 @@ public class ResourcePluginInfo {
2828
private final Map<String, ResourceProvider> resourceProviderMap = new HashMap<>();
2929
private final Set<String> resourceIndices = new HashSet<>();
3030

31-
private ResourcePluginInfo() {}
32-
33-
public static ResourcePluginInfo getInstance() {
34-
if (INSTANCE == null) {
35-
INSTANCE = new ResourcePluginInfo();
36-
}
37-
return INSTANCE;
38-
}
39-
4031
public void setResourceProviders(Map<String, ResourceProvider> providerMap) {
4132
resourceProviderMap.clear();
4233
resourceProviderMap.putAll(providerMap);

0 commit comments

Comments
 (0)