Closed
Description
Java API client version
v8/v7
Java version
11
Elasticsearch Version
v8/v7
Problem description
Reproducer: https://github.com/mingchuno/elasticsearch-java-client-issue-reproducer
Steps to reproduce:
- Start an Elasticsearch server with
xpack.security.enabled=true
and create a password. example - Call Get Role API with java client. example
- Exception is thrown due to library cannot deserialize "indices:admin/aliases" into enum for IndexPrivilege
Exception in thread "main" co.elastic.clients.json.JsonpMappingException: Error deserializing co.elastic.clients.elasticsearch.security.IndicesPrivileges: Invalid enum 'indices:admin/aliases' (JSON path: remote_monitoring_agent.indices[1].privileges[3]) (line no=1, column no=3260, offset=-1)
at co.elastic.clients.json.JsonEnum$Deserializer.deserialize(JsonEnum.java:95)
at co.elastic.clients.json.JsonEnum$Deserializer.deserialize(JsonEnum.java:81)
at co.elastic.clients.json.JsonEnum$Deserializer.deserialize(JsonEnum.java:51)
at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:316)
at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:280)
at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75)
at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:71)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:180)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:136)
at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:85)
Fix:
- Change IndicesPrivileges.privileges into
List<String>
just like ApplicationPrivileges