Skip to content

Commit 89d5460

Browse files
committed
Moar
1 parent 1826382 commit 89d5460

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/permission/IndicesPermission.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ public boolean checkIndex(Group group) {
473473
return group.checkIndex(name) && group.checkSelector(selector);
474474
}
475475
// TODO assertions around selector here?
476-
return group.checkIndex(name);
476+
return group.checkIndex(name) && group.checkSelector(IndexComponentSelector.DATA);
477477
}
478478

479479
/**

x-pack/plugin/security/qa/security-trial/src/javaRestTest/java/org/elasticsearch/xpack/security/FailureStoreSecurityRestIT.java

+21-11
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,23 @@
2929

3030
public class FailureStoreSecurityRestIT extends SecurityOnTrialLicenseRestTestCase {
3131

32-
private static final String USER = "user";
32+
private static final String DATA_ACCESS_USER = "data_access_user";
33+
private static final String FAILURE_STORE_ACCESS_USER = "failure_store_access_user";
3334
private static final SecureString PASSWORD = new SecureString("elastic-password");
3435

3536
public void testFailureStoreAccess() throws IOException {
37+
String dataAccessRole = "data_access";
3638
String failureStoreAccessRole = "failure_store_access";
37-
createUser(USER, PASSWORD, List.of(failureStoreAccessRole));
3839

40+
createUser(DATA_ACCESS_USER, PASSWORD, List.of(dataAccessRole));
41+
createUser(FAILURE_STORE_ACCESS_USER, PASSWORD, List.of(failureStoreAccessRole));
42+
43+
upsertRole(Strings.format("""
44+
{
45+
"description": "Role with data access",
46+
"cluster": ["all"],
47+
"indices": [{"names": ["test*"], "privileges": ["read"]}]
48+
}"""), dataAccessRole);
3949
upsertRole(Strings.format("""
4050
{
4151
"description": "Role with failure store access",
@@ -51,14 +61,14 @@ public void testFailureStoreAccess() throws IOException {
5161
String failedDocId = ids.stream().filter(id -> false == id.equals(successDocId)).findFirst().get();
5262

5363
// user with access to failures index
54-
assertContainsDocIds(performRequestAsUser1(new Request("GET", "/test1::failures/_search")), failedDocId);
55-
assertContainsDocIds(performRequestAsUser1(new Request("GET", "/test*::failures/_search")), failedDocId);
56-
assertContainsDocIds(performRequestAsUser1(new Request("GET", "/*1::failures/_search")), failedDocId);
57-
assertContainsDocIds(performRequestAsUser1(new Request("GET", "/*::failures/_search")), failedDocId);
58-
assertContainsDocIds(performRequestAsUser1(new Request("GET", "/.fs*/_search")), failedDocId);
64+
assertContainsDocIds(performRequest(FAILURE_STORE_ACCESS_USER, new Request("GET", "/test1::failures/_search")), failedDocId);
65+
assertContainsDocIds(performRequest(FAILURE_STORE_ACCESS_USER, new Request("GET", "/test*::failures/_search")), failedDocId);
66+
assertContainsDocIds(performRequest(FAILURE_STORE_ACCESS_USER, new Request("GET", "/*1::failures/_search")), failedDocId);
67+
assertContainsDocIds(performRequest(FAILURE_STORE_ACCESS_USER, new Request("GET", "/*::failures/_search")), failedDocId);
68+
assertContainsDocIds(performRequest(FAILURE_STORE_ACCESS_USER, new Request("GET", "/.fs*/_search")), failedDocId);
5969

60-
expectThrows404(() -> performRequestAsUser1(new Request("GET", "/test12::failures/_search")));
61-
expectThrows404(() -> performRequestAsUser1(new Request("GET", "/test2::failures/_search")));
70+
expectThrows404(() -> performRequest(FAILURE_STORE_ACCESS_USER, new Request("GET", "/test12::failures/_search")));
71+
expectThrows404(() -> performRequest(FAILURE_STORE_ACCESS_USER, new Request("GET", "/test2::failures/_search")));
6272

6373
// user with access to everything
6474
assertContainsDocIds(adminClient().performRequest(new Request("GET", "/test1::failures/_search")), failedDocId);
@@ -165,8 +175,8 @@ private List<String> populateDataStreamWithBulkRequest() throws IOException {
165175
return ids;
166176
}
167177

168-
private Response performRequestAsUser1(Request request) throws IOException {
169-
request.setOptions(RequestOptions.DEFAULT.toBuilder().addHeader("Authorization", basicAuthHeaderValue(USER, PASSWORD)).build());
178+
private Response performRequest(String user, Request request) throws IOException {
179+
request.setOptions(RequestOptions.DEFAULT.toBuilder().addHeader("Authorization", basicAuthHeaderValue(user, PASSWORD)).build());
170180
var response = client().performRequest(request);
171181
return response;
172182
}

0 commit comments

Comments
 (0)