@@ -69,6 +69,17 @@ public void testFailureStoreAccess() throws IOException {
6969
7070 expectThrows404 (() -> performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test12::failures/_search" )));
7171 expectThrows404 (() -> performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test2::failures/_search" )));
72+ expectThrows404 (() -> performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test12::*/_search" )));
73+
74+ expectThrows403 (() -> performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test1::data/_search" )));
75+ expectThrows403 (() -> performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test1/_search" )));
76+ expectThrows403 (() -> performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test2::data/_search" )));
77+ expectThrows403 (() -> performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test2/_search" )));
78+
79+ // empty result
80+ assertEmpty (performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/*1::data/_search" )));
81+ assertEmpty (performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/*1/_search" )));
82+ assertEmpty (performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/.ds*/_search" )));
7283
7384 // user with access to everything
7485 assertContainsDocIds (adminClient ().performRequest (new Request ("GET" , "/test1::failures/_search" )), failedDocId );
@@ -86,6 +97,11 @@ private static void expectThrows404(ThrowingRunnable get) {
8697 assertThat (ex .getResponse ().getStatusLine ().getStatusCode (), equalTo (404 ));
8798 }
8899
100+ private static void expectThrows403 (ThrowingRunnable get ) {
101+ var ex = expectThrows (ResponseException .class , get );
102+ assertThat (ex .getResponse ().getStatusLine ().getStatusCode (), equalTo (403 ));
103+ }
104+
89105 @ SuppressWarnings ("unchecked" )
90106 private static void assertContainsDocIds (Response response , String ... docIds ) throws IOException {
91107 assertOK (response );
@@ -100,12 +116,15 @@ private static void assertContainsDocIds(Response response, String... docIds) th
100116 }
101117 }
102118
103- private static void assert404 (Response response ) {
104- assertThat (response .getStatusLine ().getStatusCode (), equalTo (404 ));
105- }
106-
107- private static void assert403 (Response response ) {
108- assertThat (response .getStatusLine ().getStatusCode (), equalTo (403 ));
119+ private static void assertEmpty (Response response ) throws IOException {
120+ assertOK (response );
121+ final SearchResponse searchResponse = SearchResponseUtils .parseSearchResponse (responseAsParser (response ));
122+ try {
123+ SearchHit [] hits = searchResponse .getHits ().getHits ();
124+ assertThat (hits .length , equalTo (0 ));
125+ } finally {
126+ searchResponse .decRef ();
127+ }
109128 }
110129
111130 private void createTemplates () throws IOException {
@@ -130,10 +149,10 @@ private void createTemplates() throws IOException {
130149 }
131150 },
132151 "data_stream_options": {
133- "failure_store": {
134- "enabled": true
135- }
136- }
152+ "failure_store": {
153+ "enabled": true
154+ }
155+ }
137156 }
138157 }
139158 """ );
@@ -177,8 +196,6 @@ private List<String> populateDataStreamWithBulkRequest() throws IOException {
177196
178197 private Response performRequest (String user , Request request ) throws IOException {
179198 request .setOptions (RequestOptions .DEFAULT .toBuilder ().addHeader ("Authorization" , basicAuthHeaderValue (user , PASSWORD )).build ());
180- var response = client ().performRequest (request );
181- return response ;
199+ return client ().performRequest (request );
182200 }
183-
184201}
0 commit comments