Skip to content

Commit d409b68

Browse files
Merge branch 'main' into move-grpc-out-exp
2 parents a631c92 + 224a4aa commit d409b68

File tree

13 files changed

+62
-60
lines changed

13 files changed

+62
-60
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
3434
* Fix config update with deprecated config types failing in mixed clusters ([#5456](https://github.com/opensearch-project/security/pull/5456))
3535
* Fix usage of jwt_clock_skew_tolerance_seconds in HTTPJwtAuthenticator ([#5506](https://github.com/opensearch-project/security/pull/5506))
3636
* Always install demo certs if configured with demo certs ([#5517](https://github.com/opensearch-project/security/pull/5517))
37+
* [Resource Sharing] Restores client accessor pattern to fix compilation issues when security plugin is not installed ([#5541](https://github.com/opensearch-project/security/pull/5541))
3738

3839
### Refactoring
3940

sample-resource-plugin/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,4 +162,6 @@ tasks.register('jacocoSamplePluginReport', JacocoReport) {
162162
tasks.named("integrationTest").configure {
163163
dependsOn rootProject.tasks.named("compileIntegrationTestJava")
164164
finalizedBy jacocoSamplePluginReport
165+
maxParallelForks = 8
166+
forkEvery = 1
165167
}

sample-resource-plugin/src/integrationTest/java/org/opensearch/sample/resource/SecurityDisabledTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
public class SecurityDisabledTests {
5252

5353
@ClassRule
54-
public static LocalCluster cluster = new LocalCluster.Builder().clusterManager(ClusterManager.SINGLENODE)
54+
public static LocalCluster cluster = new LocalCluster.Builder().clusterManager(ClusterManager.DEFAULT)
5555
.plugin(
5656
new PluginInfo(
5757
SampleResourcePlugin.class.getName(),

sample-resource-plugin/src/main/java/org/opensearch/sample/SampleResourceExtension.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
import java.util.Set;
1515

16+
import org.opensearch.sample.client.ResourceSharingClientAccessor;
1617
import org.opensearch.security.spi.resources.ResourceProvider;
1718
import org.opensearch.security.spi.resources.ResourceSharingExtension;
1819
import org.opensearch.security.spi.resources.client.ResourceSharingClient;
@@ -23,7 +24,6 @@
2324
* Responsible for parsing the XContent into a SampleResource object.
2425
*/
2526
public class SampleResourceExtension implements ResourceSharingExtension {
26-
private ResourceSharingClient client;
2727

2828
@Override
2929
public Set<ResourceProvider> getResourceProviders() {
@@ -32,11 +32,6 @@ public Set<ResourceProvider> getResourceProviders() {
3232

3333
@Override
3434
public void assignResourceSharingClient(ResourceSharingClient resourceSharingClient) {
35-
this.client = resourceSharingClient;
36-
}
37-
38-
@Override
39-
public ResourceSharingClient getResourceSharingClient() {
40-
return this.client;
35+
ResourceSharingClientAccessor.getInstance().setResourceSharingClient(resourceSharingClient);
4136
}
4237
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
*
4+
* The OpenSearch Contributors require contributions made to
5+
* this file be licensed under the Apache-2.0 license or a
6+
* compatible open source license.
7+
*/
8+
9+
package org.opensearch.sample.client;
10+
11+
import org.opensearch.security.spi.resources.client.ResourceSharingClient;
12+
13+
/**
14+
* Accessor for resource sharing client supplied by the SPI.
15+
*/
16+
public class ResourceSharingClientAccessor {
17+
private ResourceSharingClient CLIENT;
18+
19+
private static ResourceSharingClientAccessor resourceSharingClientAccessor;
20+
21+
private ResourceSharingClientAccessor() {}
22+
23+
public static ResourceSharingClientAccessor getInstance() {
24+
if (resourceSharingClientAccessor == null) {
25+
resourceSharingClientAccessor = new ResourceSharingClientAccessor();
26+
}
27+
28+
return resourceSharingClientAccessor;
29+
}
30+
31+
/**
32+
* Set the resource sharing client
33+
*/
34+
public void setResourceSharingClient(ResourceSharingClient client) {
35+
resourceSharingClientAccessor.CLIENT = client;
36+
}
37+
38+
/**
39+
* Get the resource sharing client
40+
*/
41+
public ResourceSharingClient getResourceSharingClient() {
42+
return resourceSharingClientAccessor.CLIENT;
43+
}
44+
}

sample-resource-plugin/src/main/java/org/opensearch/sample/resource/actions/transport/GetResourceTransportAction.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import org.opensearch.core.xcontent.XContentParser;
3232
import org.opensearch.index.query.QueryBuilders;
3333
import org.opensearch.sample.SampleResource;
34-
import org.opensearch.sample.SampleResourceExtension;
34+
import org.opensearch.sample.client.ResourceSharingClientAccessor;
3535
import org.opensearch.sample.resource.actions.rest.get.GetResourceAction;
3636
import org.opensearch.sample.resource.actions.rest.get.GetResourceRequest;
3737
import org.opensearch.sample.resource.actions.rest.get.GetResourceResponse;
@@ -51,24 +51,17 @@ public class GetResourceTransportAction extends HandledTransportAction<GetResour
5151

5252
private final TransportService transportService;
5353
private final NodeClient nodeClient;
54-
private final SampleResourceExtension sampleResourceExtension;
5554

5655
@Inject
57-
public GetResourceTransportAction(
58-
TransportService transportService,
59-
ActionFilters actionFilters,
60-
NodeClient nodeClient,
61-
SampleResourceExtension sampleResourceExtension
62-
) {
56+
public GetResourceTransportAction(TransportService transportService, ActionFilters actionFilters, NodeClient nodeClient) {
6357
super(GetResourceAction.NAME, transportService, actionFilters, GetResourceRequest::new);
6458
this.transportService = transportService;
6559
this.nodeClient = nodeClient;
66-
this.sampleResourceExtension = sampleResourceExtension;
6760
}
6861

6962
@Override
7063
protected void doExecute(Task task, GetResourceRequest request, ActionListener<GetResourceResponse> listener) {
71-
ResourceSharingClient client = sampleResourceExtension.getResourceSharingClient();
64+
ResourceSharingClient client = ResourceSharingClientAccessor.getInstance().getResourceSharingClient();
7265
String resourceId = request.getResourceId();
7366

7467
if (Strings.isNullOrEmpty(resourceId)) {

sample-resource-plugin/src/main/java/org/opensearch/sample/resource/actions/transport/RevokeResourceAccessTransportAction.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import org.opensearch.common.inject.Inject;
1818
import org.opensearch.core.action.ActionListener;
1919
import org.opensearch.core.rest.RestStatus;
20-
import org.opensearch.sample.SampleResourceExtension;
20+
import org.opensearch.sample.client.ResourceSharingClientAccessor;
2121
import org.opensearch.sample.resource.actions.rest.revoke.RevokeResourceAccessAction;
2222
import org.opensearch.sample.resource.actions.rest.revoke.RevokeResourceAccessRequest;
2323
import org.opensearch.sample.resource.actions.rest.revoke.RevokeResourceAccessResponse;
@@ -37,13 +37,9 @@ public class RevokeResourceAccessTransportAction extends HandledTransportAction<
3737
private final ResourceSharingClient resourceSharingClient;
3838

3939
@Inject
40-
public RevokeResourceAccessTransportAction(
41-
TransportService transportService,
42-
ActionFilters actionFilters,
43-
SampleResourceExtension sampleResourceExtension
44-
) {
40+
public RevokeResourceAccessTransportAction(TransportService transportService, ActionFilters actionFilters) {
4541
super(RevokeResourceAccessAction.NAME, transportService, actionFilters, RevokeResourceAccessRequest::new);
46-
this.resourceSharingClient = sampleResourceExtension.getResourceSharingClient();
42+
this.resourceSharingClient = ResourceSharingClientAccessor.getInstance().getResourceSharingClient();
4743
}
4844

4945
@Override

sample-resource-plugin/src/main/java/org/opensearch/sample/resource/actions/transport/ShareResourceTransportAction.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import org.opensearch.common.inject.Inject;
1818
import org.opensearch.core.action.ActionListener;
1919
import org.opensearch.core.rest.RestStatus;
20-
import org.opensearch.sample.SampleResourceExtension;
20+
import org.opensearch.sample.client.ResourceSharingClientAccessor;
2121
import org.opensearch.sample.resource.actions.rest.share.ShareResourceAction;
2222
import org.opensearch.sample.resource.actions.rest.share.ShareResourceRequest;
2323
import org.opensearch.sample.resource.actions.rest.share.ShareResourceResponse;
@@ -36,13 +36,9 @@ public class ShareResourceTransportAction extends HandledTransportAction<ShareRe
3636
private final ResourceSharingClient resourceSharingClient;
3737

3838
@Inject
39-
public ShareResourceTransportAction(
40-
TransportService transportService,
41-
ActionFilters actionFilters,
42-
SampleResourceExtension sampleResourceExtension
43-
) {
39+
public ShareResourceTransportAction(TransportService transportService, ActionFilters actionFilters) {
4440
super(ShareResourceAction.NAME, transportService, actionFilters, ShareResourceRequest::new);
45-
this.resourceSharingClient = sampleResourceExtension.getResourceSharingClient();
41+
this.resourceSharingClient = ResourceSharingClientAccessor.getInstance().getResourceSharingClient();
4642
}
4743

4844
@Override

spi/src/main/java/org/opensearch/security/spi/resources/ResourceSharingExtension.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,4 @@ public interface ResourceSharingExtension {
3232
* @param client the ResourceSharingClient instance
3333
*/
3434
void assignResourceSharingClient(ResourceSharingClient client);
35-
36-
/**
37-
* Gets the resource sharing client to be used by the plugin
38-
* @return the resource sharing client
39-
*/
40-
ResourceSharingClient getResourceSharingClient();
41-
4235
}

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1195,11 +1195,7 @@ public Collection<Object> createComponents(
11951195
extension.assignResourceSharingClient(resourceAccessControlClient);
11961196
});
11971197
components.add(resourcePluginInfo);
1198-
components.add(resourceAccessControlClient);
11991198
components.add(resourceAccessHandler);
1200-
// we add extensions here to allow the plugins to use them to fetch the resource-sharing client
1201-
// example: SampleResourcePlugin -> GetResourceTransportAction
1202-
components.addAll(resourceSharingExtensions);
12031199
// CS-ENFORCE-SINGLE
12041200
}
12051201

0 commit comments

Comments
 (0)