Skip to content

Commit 1f7417c

Browse files
committed
Respond to PR feedback
Signed-off-by: Craig Perkins <[email protected]>
1 parent fce023a commit 1f7417c

19 files changed

+34
-70
lines changed

src/integrationTest/java/org/opensearch/security/SystemIndexTests.java src/integrationTest/java/org/opensearch/security/systemindex/SystemIndexTests.java

+14-8
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* compatible open source license.
88
*
99
*/
10-
package org.opensearch.security;
10+
package org.opensearch.security.systemindex;
1111

1212
import java.util.List;
1313
import java.util.Map;
@@ -19,8 +19,8 @@
1919
import org.junit.runner.RunWith;
2020

2121
import org.opensearch.core.rest.RestStatus;
22-
import org.opensearch.security.plugin.SystemIndexPlugin1;
23-
import org.opensearch.security.plugin.SystemIndexPlugin2;
22+
import org.opensearch.security.systemindex.sampleplugin.SystemIndexPlugin1;
23+
import org.opensearch.security.systemindex.sampleplugin.SystemIndexPlugin2;
2424
import org.opensearch.test.framework.TestSecurityConfig.AuthcDomain;
2525
import org.opensearch.test.framework.cluster.ClusterManager;
2626
import org.opensearch.test.framework.cluster.LocalCluster;
@@ -30,10 +30,10 @@
3030
import static org.hamcrest.MatcherAssert.assertThat;
3131
import static org.hamcrest.Matchers.containsString;
3232
import static org.hamcrest.Matchers.equalTo;
33-
import static org.opensearch.security.plugin.SystemIndexPlugin1.SYSTEM_INDEX_1;
34-
import static org.opensearch.security.plugin.SystemIndexPlugin2.SYSTEM_INDEX_2;
3533
import static org.opensearch.security.support.ConfigConstants.SECURITY_RESTAPI_ROLES_ENABLED;
3634
import static org.opensearch.security.support.ConfigConstants.SECURITY_SYSTEM_INDICES_ENABLED_KEY;
35+
import static org.opensearch.security.systemindex.sampleplugin.SystemIndexPlugin1.SYSTEM_INDEX_1;
36+
import static org.opensearch.security.systemindex.sampleplugin.SystemIndexPlugin2.SYSTEM_INDEX_2;
3737
import static org.opensearch.test.framework.TestSecurityConfig.Role.ALL_ACCESS;
3838
import static org.opensearch.test.framework.TestSecurityConfig.User.USER_ADMIN;
3939

@@ -111,7 +111,9 @@ public void testPluginShouldNotBeAbleToIndexDocumentIntoSystemIndexRegisteredByO
111111
assertThat(response.getStatusCode(), equalTo(RestStatus.FORBIDDEN.getStatus()));
112112
assertThat(
113113
response.getBody(),
114-
containsString("no permissions for [] and User [name=plugin:org.opensearch.security.plugin.SystemIndexPlugin1")
114+
containsString(
115+
"no permissions for [] and User [name=plugin:org.opensearch.security.systemindex.sampleplugin.SystemIndexPlugin1"
116+
)
115117
);
116118
}
117119
}
@@ -134,7 +136,9 @@ public void testPluginShouldNotBeAbleToRunClusterActions() {
134136
assertThat(response.getStatusCode(), equalTo(RestStatus.FORBIDDEN.getStatus()));
135137
assertThat(
136138
response.getBody(),
137-
containsString("no permissions for [] and User [name=plugin:org.opensearch.security.plugin.SystemIndexPlugin1")
139+
containsString(
140+
"no permissions for [cluster:monitor/health] and User [name=plugin:org.opensearch.security.systemindex.sampleplugin.SystemIndexPlugin1"
141+
)
138142
);
139143
}
140144
}
@@ -177,7 +181,9 @@ public void testPluginShouldNotBeAbleToBulkIndexDocumentIntoMixOfSystemIndexWher
177181

178182
assertThat(
179183
response.getBody(),
180-
containsString("no permissions for [] and User [name=plugin:org.opensearch.security.plugin.SystemIndexPlugin1")
184+
containsString(
185+
"no permissions for [] and User [name=plugin:org.opensearch.security.systemindex.sampleplugin.SystemIndexPlugin1"
186+
)
181187
);
182188
}
183189
}

src/integrationTest/java/org/opensearch/security/plugin/IndexDocumentIntoSystemIndexAction.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/IndexDocumentIntoSystemIndexAction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import org.opensearch.action.ActionType;
1414

src/integrationTest/java/org/opensearch/security/plugin/IndexDocumentIntoSystemIndexRequest.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/IndexDocumentIntoSystemIndexRequest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import java.io.IOException;
1414

src/integrationTest/java/org/opensearch/security/plugin/IndexDocumentIntoSystemIndexResponse.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/IndexDocumentIntoSystemIndexResponse.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
// CS-SUPPRESS-SINGLE: RegexpSingleline It is not possible to use phrase "cluster manager" instead of master here
1414
import java.io.IOException;

src/main/java/org/opensearch/security/identity/PluginContextSwitcher.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/PluginContextSwitcher.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* Modifications Copyright OpenSearch Contributors. See
99
* GitHub history for details.
1010
*/
11-
package org.opensearch.security.identity;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import java.util.Objects;
1414
import java.util.concurrent.Callable;
@@ -21,11 +21,11 @@ public class PluginContextSwitcher {
2121
public PluginContextSwitcher() {}
2222

2323
public void initialize(PluginSubject pluginSubject) {
24+
Objects.requireNonNull(pluginSubject);
2425
this.pluginSubject = pluginSubject;
2526
}
2627

2728
public <T> T runAs(Callable<T> callable) {
28-
Objects.requireNonNull(pluginSubject);
2929
try {
3030
return pluginSubject.runAs(callable);
3131
} catch (Exception e) {

src/integrationTest/java/org/opensearch/security/plugin/RestBulkIndexDocumentIntoMixOfSystemIndexAction.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/RestBulkIndexDocumentIntoMixOfSystemIndexAction.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import java.util.List;
1414

@@ -25,12 +25,11 @@
2525
import org.opensearch.rest.BytesRestResponse;
2626
import org.opensearch.rest.RestChannel;
2727
import org.opensearch.rest.RestRequest;
28-
import org.opensearch.security.identity.PluginContextSwitcher;
2928

3029
import static java.util.Collections.singletonList;
3130
import static org.opensearch.rest.RestRequest.Method.PUT;
32-
import static org.opensearch.security.plugin.SystemIndexPlugin1.SYSTEM_INDEX_1;
33-
import static org.opensearch.security.plugin.SystemIndexPlugin2.SYSTEM_INDEX_2;
31+
import static org.opensearch.security.systemindex.sampleplugin.SystemIndexPlugin1.SYSTEM_INDEX_1;
32+
import static org.opensearch.security.systemindex.sampleplugin.SystemIndexPlugin2.SYSTEM_INDEX_2;
3433

3534
public class RestBulkIndexDocumentIntoMixOfSystemIndexAction extends BaseRestHandler {
3635

src/integrationTest/java/org/opensearch/security/plugin/RestBulkIndexDocumentIntoSystemIndexAction.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/RestBulkIndexDocumentIntoSystemIndexAction.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import java.util.List;
1414

@@ -27,7 +27,6 @@
2727
import org.opensearch.rest.BytesRestResponse;
2828
import org.opensearch.rest.RestChannel;
2929
import org.opensearch.rest.RestRequest;
30-
import org.opensearch.security.identity.PluginContextSwitcher;
3130

3231
import static java.util.Collections.singletonList;
3332
import static org.opensearch.rest.RestRequest.Method.PUT;

src/integrationTest/java/org/opensearch/security/plugin/RestIndexDocumentIntoSystemIndexAction.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/RestIndexDocumentIntoSystemIndexAction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import java.util.List;
1414

src/integrationTest/java/org/opensearch/security/plugin/RestRunClusterHealthAction.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/RestRunClusterHealthAction.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import java.util.List;
1414

@@ -17,7 +17,6 @@
1717
import org.opensearch.rest.BaseRestHandler;
1818
import org.opensearch.rest.RestRequest;
1919
import org.opensearch.rest.action.RestToXContentListener;
20-
import org.opensearch.security.identity.PluginContextSwitcher;
2120

2221
import static java.util.Collections.singletonList;
2322
import static org.opensearch.rest.RestRequest.Method.GET;

src/integrationTest/java/org/opensearch/security/plugin/RunClusterHealthAction.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/RunClusterHealthAction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import org.opensearch.action.ActionType;
1414

src/integrationTest/java/org/opensearch/security/plugin/RunClusterHealthRequest.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/RunClusterHealthRequest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import java.io.IOException;
1414

src/integrationTest/java/org/opensearch/security/plugin/RunClusterHealthResponse.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/RunClusterHealthResponse.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
// CS-SUPPRESS-SINGLE: RegexpSingleline It is not possible to use phrase "cluster manager" instead of master here
1414
import java.io.IOException;

src/integrationTest/java/org/opensearch/security/plugin/SystemIndexPlugin1.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/SystemIndexPlugin1.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import java.util.Arrays;
1414
import java.util.Collection;
@@ -39,7 +39,6 @@
3939
import org.opensearch.rest.RestController;
4040
import org.opensearch.rest.RestHandler;
4141
import org.opensearch.script.ScriptService;
42-
import org.opensearch.security.identity.PluginContextSwitcher;
4342
import org.opensearch.threadpool.ThreadPool;
4443
import org.opensearch.watcher.ResourceWatcherService;
4544

src/integrationTest/java/org/opensearch/security/plugin/SystemIndexPlugin2.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/SystemIndexPlugin2.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import java.util.Collection;
1414
import java.util.Collections;

src/integrationTest/java/org/opensearch/security/plugin/TransportIndexDocumentIntoSystemIndexAction.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/TransportIndexDocumentIntoSystemIndexAction.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import org.opensearch.action.admin.indices.create.CreateIndexRequest;
1414
import org.opensearch.action.index.IndexRequest;
@@ -21,7 +21,6 @@
2121
import org.opensearch.core.action.ActionListener;
2222
import org.opensearch.identity.IdentityService;
2323
import org.opensearch.identity.Subject;
24-
import org.opensearch.security.identity.PluginContextSwitcher;
2524
import org.opensearch.security.support.ConfigConstants;
2625
import org.opensearch.security.user.User;
2726
import org.opensearch.tasks.Task;

src/integrationTest/java/org/opensearch/security/plugin/TransportRunClusterHealthAction.java src/integrationTest/java/org/opensearch/security/systemindex/sampleplugin/TransportRunClusterHealthAction.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*/
1010

11-
package org.opensearch.security.plugin;
11+
package org.opensearch.security.systemindex.sampleplugin;
1212

1313
import org.opensearch.action.admin.cluster.health.ClusterHealthRequest;
1414
import org.opensearch.action.admin.cluster.health.ClusterHealthResponse;
@@ -19,7 +19,6 @@
1919
import org.opensearch.core.action.ActionListener;
2020
import org.opensearch.identity.IdentityService;
2121
import org.opensearch.identity.Subject;
22-
import org.opensearch.security.identity.PluginContextSwitcher;
2322
import org.opensearch.tasks.Task;
2423
import org.opensearch.threadpool.ThreadPool;
2524
import org.opensearch.transport.TransportService;

src/main/java/org/opensearch/security/auth/BackendRegistry.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ public boolean authenticate(final SecurityRequestChannel request) {
226226
// PKI authenticated REST call
227227
User superuser = new User(sslPrincipal);
228228
UserSubject subject = new SecurityUser(threadPool, superuser);
229-
threadPool.getThreadContext().putPersistent(ConfigConstants.OPENDISTRO_SECURITY_AUTHENTICATED_USER, subject);
229+
threadContext.putPersistent(ConfigConstants.OPENDISTRO_SECURITY_AUTHENTICATED_USER, subject);
230230
threadContext.putTransient(ConfigConstants.OPENDISTRO_SECURITY_USER, superuser);
231231
auditLog.logSucceededLogin(sslPrincipal, true, null, request);
232232
return true;

src/main/java/org/opensearch/security/privileges/SystemIndexAccessEvaluator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ private void evaluateSystemIndicesAccess(
302302
}
303303
}
304304

305-
if (user.isPluginUser()) {
305+
if (user.isPluginUser() && !requestedResolved.isLocalAll()) {
306306
Set<String> matchingSystemIndices = SystemIndexRegistry.matchesPluginSystemIndexPattern(
307307
user.getName().replace("plugin:", ""),
308308
requestedResolved.getAllIndices()

src/test/java/org/opensearch/security/identity/ContextProvidingPluginSubjectTests.java

-36
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import static org.hamcrest.Matchers.equalTo;
2626
import static org.opensearch.security.support.ConfigConstants.OPENDISTRO_SECURITY_USER;
2727
import static org.junit.Assert.assertNull;
28-
import static org.junit.Assert.assertThrows;
2928

3029
public class ContextProvidingPluginSubjectTests {
3130
static class TestIdentityAwarePlugin extends Plugin implements IdentityAwarePlugin {
@@ -57,39 +56,4 @@ public void testSecurityUserSubjectRunAs() throws Exception {
5756

5857
SecurityUserTests.terminate(threadPool);
5958
}
60-
61-
@Test
62-
public void testPluginContextSwitcherRunAs() throws Exception {
63-
final ThreadPool threadPool = new TestThreadPool(getClass().getName());
64-
65-
final Plugin testPlugin = new TestIdentityAwarePlugin();
66-
67-
final PluginContextSwitcher contextSwitcher = new PluginContextSwitcher();
68-
69-
final String pluginPrincipal = "plugin:" + testPlugin.getClass().getCanonicalName();
70-
71-
final User pluginUser = new User(pluginPrincipal);
72-
73-
ContextProvidingPluginSubject subject = new ContextProvidingPluginSubject(threadPool, Settings.EMPTY, testPlugin);
74-
75-
contextSwitcher.initialize(subject);
76-
77-
assertNull(threadPool.getThreadContext().getTransient(OPENDISTRO_SECURITY_USER));
78-
79-
subject.runAs(() -> {
80-
assertThat(threadPool.getThreadContext().getTransient(OPENDISTRO_SECURITY_USER), equalTo(pluginUser));
81-
return null;
82-
});
83-
84-
assertNull(threadPool.getThreadContext().getTransient(OPENDISTRO_SECURITY_USER));
85-
86-
SecurityUserTests.terminate(threadPool);
87-
}
88-
89-
@Test
90-
public void testPluginContextSwitcherUninitializedRunAs() throws Exception {
91-
final PluginContextSwitcher contextSwitcher = new PluginContextSwitcher();
92-
93-
assertThrows(NullPointerException.class, () -> contextSwitcher.runAs(() -> null));
94-
}
9559
}

0 commit comments

Comments
 (0)