Our software:
ElasticSearch 5.2.2
Kibana 5.2.2
ReadonlyREST versions:
ElasticSearch plugin: 1.16.8
Kibana Plugin: readonlyrest_kbn@0.1.6-pre1 (it is the only version I get for Kibana 5.2.2 from PRO versions download page)
When I try to commit settings from kibana plugin interface I got an error.
At the top of Kibana’s interface:
Elasticsearch error: {"data":{"error":{"root_cause":[{"type":"json_generation_exception","reason":"Can not start an object, expecting field name (context: Object)"}],"type":"json_generation_exception","reason":"Can not start an object, expecting field name (context: Object)"},"status":500},"status":500,"config":{"method":"POST","transformRequest":[null],"transformResponse":[null],"url":"/api/readonlyrest_kbn/settings","data":{"settings":"readonlyrest:\n access_control_rules:\n\n - name: \"Allowing anything from localhost\"\n hosts: [127.0.0.1]\n\n - name: \"Kibana service\"\n hosts: [10.201.140.0/24]\n auth_key: kibana_service:sfCoQgtq02Sp\n type: allow\n\n - name: \"Kibana admin\"\n type: allow\n kibana_access: admin\n auth_key: admin:kibana\n\n - name: \"Kibana user\"\n auth_key: user:kibana\n kibana_access: ro\n kibana_hide_apps: [\"timelion\", \"readonlyrest_kbn\", \"kibana:dev_tools\", \"monitoring\", \"kibana:management\"]\n actions: [\"cluster:monitor/nodes/info\", \"indices:admin/mappings/fields/get\", \"indices:data/read/\"]\n indices: [\".kibana\", \"public_index\", \"medium_index\"]\n\n - name: \"Kibana power user\"\n auth_key: power_user:kibana\n kibana_access: ro\n kibana_hide_apps: [\"timelion\", \"readonlyrest_kbn\", \"kibana:dev_tools\", \"monitoring\", \"kibana:management\"]\n actions: [\"cluster:monitor/nodes/info\", \"indices:admin/mappings/fields/get\", \"indices:data/read/\"]\n indices: [\".kibana\", \"private_index\", \"public_index\", \"medium_index\"]"},"headers":{"Accept":"application/json, text/plain, /","Content-Type":"application/json;charset=utf-8","kbn-version":"5.2.2"}},"statusText":"Internal Server Error"}
At the same time at elasticsearch’s log:
[2017-07-17T13:29:13,273][WARN ][r.suppressed ] path: /_readonlyrest/admin/refreshconfig, params: {} com.fasterxml.jackson.core.JsonGenerationException: Can not start an object, expecting field name (context: Object) at com.fasterxml.jackson.core.JsonGenerator._reportError(JsonGenerator.java:1897) ~[jackson-core-2.8.6.jar:2.8.6] at com.fasterxml.jackson.core.json.JsonGeneratorImpl._reportCantWriteValueExpectName(JsonGeneratorImpl.java:244) ~[jackson-core-2.8.6.jar:2.8.6] at com.fasterxml.jackson.core.json.UTF8JsonGenerator._verifyValueWrite(UTF8JsonGenerator.java:1027) ~[jackson-core-2.8.6.jar:2.8.6] at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeStartObject(UTF8JsonGenerator.java:313) ~[jackson-core-2.8.6.jar:2.8.6] at org.elasticsearch.common.xcontent.json.JsonXContentGenerator.writeStartObject(JsonXContentGenerator.java:161) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.common.xcontent.XContentBuilder.startObject(XContentBuilder.java:217) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.plugin.readonlyrest.es.rradmin.RRAdminResponse.toXContent(RRAdminResponse.java:50) ~[?:?] at org.elasticsearch.rest.action.RestToXContentListener.buildResponse(RestToXContentListener.java:48) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.rest.action.RestToXContentListener.buildResponse(RestToXContentListener.java:41) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.rest.action.RestToXContentListener.buildResponse(RestToXContentListener.java:33) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.rest.action.RestResponseListener.processResponse(RestResponseListener.java:37) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.rest.action.RestActionListener.onResponse(RestActionListener.java:47) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:91) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:87) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.plugin.readonlyrest.es.actionlisteners.ACLActionListener.onResponse(ACLActionListener.java:69) ~[?:?] at org.elasticsearch.plugin.readonlyrest.es.actionlisteners.ACLActionListener.onResponse(ACLActionListener.java:32) ~[?:?] at org.elasticsearch.plugin.readonlyrest.es.rradmin.TransportRRAdminAction.lambda$doExecute$0(TransportRRAdminAction.java:60) ~[?:?] at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656) ~[?:1.8.0_131] at java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:669) ~[?:1.8.0_131] at java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:1997) ~[?:1.8.0_131] at org.elasticsearch.plugin.readonlyrest.es.rradmin.TransportRRAdminAction.doExecute(TransportRRAdminAction.java:55) ~[?:?] at org.elasticsearch.plugin.readonlyrest.es.rradmin.TransportRRAdminAction.doExecute(TransportRRAdminAction.java:36) ~[?:?] at org.elasticsearch.action.support.TransportAction.doExecute(TransportAction.java:149) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:173) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.plugin.readonlyrest.es.IndexLevelActionFilter.lambda$handleRequest$1(IndexLevelActionFilter.java:212) ~[?:?] at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602) ~[?:1.8.0_131] at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:614) ~[?:1.8.0_131] at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:1983) ~[?:1.8.0_131] at org.elasticsearch.plugin.readonlyrest.es.IndexLevelActionFilter.handleRequest(IndexLevelActionFilter.java:202) ~[?:?] at org.elasticsearch.plugin.readonlyrest.es.IndexLevelActionFilter.apply(IndexLevelActionFilter.java:145) ~[?:?] at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:171) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:145) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:87) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.client.node.NodeClient.executeLocally(NodeClient.java:75) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:64) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:403) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.plugin.readonlyrest.es.rradmin.rest.RestRRAdminAction.lambda$prepareRequest$0(RestRRAdminAction.java:49) ~[?:?] at org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:82) ~[elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.plugin.readonlyrest.es.ReadonlyRestPlugin.lambda$null$3(ReadonlyRestPlugin.java:120) ~[?:?] at org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:162) [elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.http.HttpServer.dispatchRequest(HttpServer.java:115) [elasticsearch-5.2.2.jar:5.2.2] at org.elasticsearch.http.netty4.Netty4HttpServerTransport.dispatchRequest(Netty4HttpServerTransport.java:515) [transport-netty4-5.2.2.jar:5.2.2] at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.channelRead0(Netty4HttpRequestHandler.java:70) [transport-netty4-5.2.2.jar:5.2.2] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at org.elasticsearch.http.netty4.pipelining.HttpPipeliningHandler.channelRead(HttpPipeliningHandler.java:65) [transport-netty4-5.2.2.jar:5.2.2] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.1.7.Final.jar:4.1.7.Final] at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) [netty-codec-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) [netty-codec-4.1.7.Final.jar:4.1.7.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267) [netty-codec-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:129) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:642) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:527) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:481) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:441) [netty-transport-4.1.7.Final.jar:4.1.7.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-common-4.1.7.Final.jar:4.1.7.Final] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]