Skip to content

Commit 533164e

Browse files
committed
Tests
Signed-off-by: Nils Bandener <[email protected]>
1 parent db79acd commit 533164e

File tree

2 files changed

+49
-3
lines changed

2 files changed

+49
-3
lines changed

src/integrationTest/java/org/opensearch/security/privileges/int_tests/IndexAuthorizationReadOnlyIntTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@
6868
@ThreadLeakScope(ThreadLeakScope.Scope.NONE)
6969
public class IndexAuthorizationReadOnlyIntTests {
7070

71+
// TODO pit_segments
72+
7173
static final TestIndex index_a1 = TestIndex.name("index_a1").documentCount(100).seed(1).build();
7274
static final TestIndex index_a2 = TestIndex.name("index_a2").documentCount(110).seed(2).build();
7375
static final TestIndex index_a3 = TestIndex.name("index_a3").documentCount(120).seed(3).build();

src/integrationTest/java/org/opensearch/security/privileges/int_tests/IndexAuthorizationReadWriteIntTests.java

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,21 +199,21 @@ public class IndexAuthorizationReadWriteIntTests {
199199
static TestSecurityConfig.User LIMITED_USER_B_HIDDEN_MANAGE_INDEX_ALIAS = new TestSecurityConfig.User(
200200
"limited_user_B_hidden_manage_index_alias"
201201
)//
202-
.description("index_b*, index_hidden*, alias_bwx* with manage privs")//
202+
.description("index_b*, index_hidden*, alias_bwx* with manage privs, index_a* read only")//
203203
.roles(
204204
//
205205
new Role("r1")//
206206
.clusterPermissions("cluster_composite_ops", "cluster_monitor")//
207207
.indexPermissions("read", "indices_monitor", "indices:admin/refresh*")
208-
.on("index_b*", "index_hidden*")//
208+
.on("index_a*", "index_b*", "index_hidden*")//
209209
.indexPermissions("write")
210210
.on("index_bw*", "index_hidden*")//
211211
.indexPermissions("manage")
212212
.on("index_bw*", "index_hidden*")//
213213
.indexPermissions("manage_aliases")
214214
.on("alias_bwx*")
215215
)//
216-
.indexMatcher("read", limitedTo(index_br1, index_br2, index_bw1, index_bw2, index_bwx1, index_bwx2, index_hidden))//
216+
.indexMatcher("read", limitedTo(index_ar1, index_ar2, index_aw1, index_aw2, index_br1, index_br2, index_bw1, index_bw2, index_bwx1, index_bwx2, index_hidden))//
217217
.indexMatcher("write", limitedTo(index_bw1, index_bw2, index_bwx1, index_bwx2, index_hidden))//
218218
.indexMatcher("create_index", limitedTo(index_bw1, index_bw2, index_bwx1, index_bwx2, index_hidden))//
219219
.indexMatcher("manage_index", limitedTo(index_bw1, index_bw2, index_bwx1, index_bwx2, alias_bwx, index_hidden))//
@@ -1271,6 +1271,50 @@ public void closeIndex_openIndex() throws Exception {
12711271
}
12721272
}
12731273

1274+
@Test
1275+
public void rollover_explicitTargetIndex() throws Exception {
1276+
try (TestRestClient restClient = cluster.getRestClient(user)) {
1277+
createInitialTestObjects(alias_bwx.on(index_bw1, index_bw2));
1278+
1279+
HttpResponse httpResponse = restClient.postJson("_aliases", """
1280+
{
1281+
"actions": [
1282+
{ "remove": { "index": "*", "alias": "alias_bwx" } }
1283+
]
1284+
}""");
1285+
1286+
if (clusterConfig.legacyPrivilegeEvaluation) {
1287+
// This is only allowed if we have privileges for all indices, even if not all indices are member of alias_bwx
1288+
if (user.indexMatcher("manage_alias")
1289+
.coversAll(
1290+
index_ar1,
1291+
index_ar2,
1292+
index_aw1,
1293+
index_aw2,
1294+
index_br1,
1295+
index_br2,
1296+
index_bw1,
1297+
index_bw1,
1298+
index_cr1,
1299+
index_cw1
1300+
)) {
1301+
assertThat(httpResponse, isOk());
1302+
} else {
1303+
assertThat(httpResponse, isForbidden());
1304+
}
1305+
} else {
1306+
if (user.indexMatcher("manage_alias").coversAll(alias_bwx)) {
1307+
assertThat(httpResponse, isOk());
1308+
} else {
1309+
assertThat(httpResponse, isForbidden());
1310+
}
1311+
}
1312+
1313+
} finally {
1314+
delete(alias_bwx);
1315+
}
1316+
}
1317+
12741318
@After
12751319
public void refresh() {
12761320
cluster.getInternalNodeClient().admin().indices().refresh(new RefreshRequest("*")).actionGet();

0 commit comments

Comments
 (0)