Skip to content

Commit 1ec3fed

Browse files
[8.19] Return failure store privileges via get built-in privileges API (#125852) (#126019)
* Return failure store privileges via get built-in privileges API (#125852) Return `read_failure_store` and `manage_failure_store` via `GET /_security/privilege/_builtin` API. * add failure store privileges to get-builtin-privileges API docs
1 parent 9f5958a commit 1ec3fed

File tree

3 files changed

+4
-12
lines changed

3 files changed

+4
-12
lines changed

docs/reference/rest-api/security/get-builtin-privileges.asciidoc

+2
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,15 @@ A successful call returns an object with "cluster", "index", and "remote_cluster
148148
"maintenance",
149149
"manage",
150150
"manage_data_stream_lifecycle",
151+
"manage_failure_store",
151152
"manage_follow_index",
152153
"manage_ilm",
153154
"manage_leader_index",
154155
"monitor",
155156
"none",
156157
"read",
157158
"read_cross_cluster",
159+
"read_failure_store",
158160
"view_index_metadata",
159161
"write"
160162
],

x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/rest/action/privilege/RestGetBuiltinPrivilegesAction.java

+1-11
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@
2828
import org.elasticsearch.xpack.security.rest.action.SecurityBaseRestHandler;
2929

3030
import java.io.IOException;
31-
import java.util.Arrays;
3231
import java.util.List;
33-
import java.util.Set;
3432

3533
import static org.elasticsearch.rest.RestRequest.Method.GET;
3634

@@ -41,8 +39,6 @@
4139
public class RestGetBuiltinPrivilegesAction extends SecurityBaseRestHandler {
4240

4341
private static final Logger logger = LogManager.getLogger(RestGetBuiltinPrivilegesAction.class);
44-
// TODO remove this once we can update docs tests again
45-
private static final Set<String> FAILURE_STORE_PRIVILEGES_TO_EXCLUDE = Set.of("read_failure_store", "manage_failure_store");
4642
private final GetBuiltinPrivilegesResponseTranslator responseTranslator;
4743

4844
public RestGetBuiltinPrivilegesAction(
@@ -75,20 +71,14 @@ public RestResponse buildResponse(GetBuiltinPrivilegesResponse response, XConten
7571
final var translatedResponse = responseTranslator.translate(response);
7672
builder.startObject();
7773
builder.array("cluster", translatedResponse.getClusterPrivileges());
78-
builder.array("index", filterOutFailureStorePrivileges(translatedResponse));
74+
builder.array("index", translatedResponse.getIndexPrivileges());
7975
String[] remoteClusterPrivileges = translatedResponse.getRemoteClusterPrivileges();
8076
if (remoteClusterPrivileges.length > 0) { // remote clusters are not supported in stateless mode, so hide entirely
8177
builder.array("remote_cluster", remoteClusterPrivileges);
8278
}
8379
builder.endObject();
8480
return new RestResponse(RestStatus.OK, builder);
8581
}
86-
87-
private static String[] filterOutFailureStorePrivileges(GetBuiltinPrivilegesResponse translatedResponse) {
88-
return Arrays.stream(translatedResponse.getIndexPrivileges())
89-
.filter(p -> false == FAILURE_STORE_PRIVILEGES_TO_EXCLUDE.contains(p))
90-
.toArray(String[]::new);
91-
}
9282
}
9383
);
9484
}

x-pack/plugin/src/yamlRestTest/resources/rest-api-spec/test/privileges/11_builtin.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ setup:
1616
# I would much prefer we could just check that specific entries are in the array, but we don't have
1717
# an assertion for that
1818
- length: { "cluster" : 62 }
19-
- length: { "index" : 22 }
19+
- length: { "index" : 24 }

0 commit comments

Comments
 (0)