@@ -99,11 +99,37 @@ public void testFailureStoreAccess() throws IOException {
9999 expectThrows403 (() -> performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test2/_search" )));
100100 expectThrows403 (() -> performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/" + dataIndexName + "/_search" )));
101101
102- // empty result
102+ assertEmpty (performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test1::data/_search?ignore_unavailable=true" )));
103+ assertEmpty (performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test1/_search?ignore_unavailable=true" )));
104+ assertEmpty (performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test2::data/_search?ignore_unavailable=true" )));
105+ assertEmpty (performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test2/_search?ignore_unavailable=true" )));
106+ assertEmpty (
107+ performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/" + dataIndexName + "/_search?ignore_unavailable=true" ))
108+ );
109+
103110 assertEmpty (performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/*1::data/_search" )));
104111 assertEmpty (performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/*1/_search" )));
105112 assertEmpty (performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/.ds*/_search" )));
106113
114+ // user with access to data index
115+ assertContainsDocIds (performRequest (DATA_ACCESS_USER , new Request ("GET" , "/test1/_search" )), successDocId );
116+ assertContainsDocIds (performRequest (DATA_ACCESS_USER , new Request ("GET" , "/test*/_search" )), successDocId );
117+ assertContainsDocIds (performRequest (DATA_ACCESS_USER , new Request ("GET" , "/*1/_search" )), successDocId );
118+ assertContainsDocIds (performRequest (DATA_ACCESS_USER , new Request ("GET" , "/*/_search" )), successDocId );
119+ assertContainsDocIds (performRequest (DATA_ACCESS_USER , new Request ("GET" , "/.ds*/_search" )), successDocId );
120+ assertContainsDocIds (performRequest (DATA_ACCESS_USER , new Request ("GET" , "/" + dataIndexName + "/_search" )), successDocId );
121+
122+ expectThrows404 (() -> performRequest (DATA_ACCESS_USER , new Request ("GET" , "/test12/_search" )));
123+ expectThrows404 (() -> performRequest (DATA_ACCESS_USER , new Request ("GET" , "/test2/_search" )));
124+ expectThrows404 (() -> performRequest (FAILURE_STORE_ACCESS_USER , new Request ("GET" , "/test12::*/_search" )));
125+
126+ expectThrows403 (() -> performRequest (DATA_ACCESS_USER , new Request ("GET" , "/test1::failures/_search" )));
127+ expectThrows403 (() -> performRequest (DATA_ACCESS_USER , new Request ("GET" , "/test2::failures/_search" )));
128+ expectThrows403 (() -> performRequest (DATA_ACCESS_USER , new Request ("GET" , "/" + failureIndexName + "/_search" )));
129+ // TODO this is inconsistent with failure user where we get an empty result for .ds* instead
130+ expectThrows403 (() -> performRequest (DATA_ACCESS_USER , new Request ("GET" , "/.fs*/_search" )));
131+ assertEmpty (performRequest (DATA_ACCESS_USER , new Request ("GET" , "/*1::failures/_search" )));
132+
107133 // user with access to everything
108134 assertContainsDocIds (adminClient ().performRequest (new Request ("GET" , "/test1::failures/_search" )), failedDocId );
109135 assertContainsDocIds (adminClient ().performRequest (new Request ("GET" , "/test*::failures/_search" )), failedDocId );
0 commit comments