29
29
30
30
public class FailureStoreSecurityRestIT extends SecurityOnTrialLicenseRestTestCase {
31
31
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" ;
33
34
private static final SecureString PASSWORD = new SecureString ("elastic-password" );
34
35
35
36
public void testFailureStoreAccess () throws IOException {
37
+ String dataAccessRole = "data_access" ;
36
38
String failureStoreAccessRole = "failure_store_access" ;
37
- createUser (USER , PASSWORD , List .of (failureStoreAccessRole ));
38
39
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 );
39
49
upsertRole (Strings .format ("""
40
50
{
41
51
"description": "Role with failure store access",
@@ -51,14 +61,14 @@ public void testFailureStoreAccess() throws IOException {
51
61
String failedDocId = ids .stream ().filter (id -> false == id .equals (successDocId )).findFirst ().get ();
52
62
53
63
// 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 );
59
69
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" )));
62
72
63
73
// user with access to everything
64
74
assertContainsDocIds (adminClient ().performRequest (new Request ("GET" , "/test1::failures/_search" )), failedDocId );
@@ -165,8 +175,8 @@ private List<String> populateDataStreamWithBulkRequest() throws IOException {
165
175
return ids ;
166
176
}
167
177
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 ());
170
180
var response = client ().performRequest (request );
171
181
return response ;
172
182
}
0 commit comments