2929
3030public 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