私はES 5.1.2を使用しています。すべての/ _searchリクエストに対して簡単な認証キーの検索を行いたいと思います。 elastic.coで非常に詳細なプラグイン開発ガイドが見つかりませんでしたが、これまで見つかった唯一のドキュメントはhttp://david.pilato.fr/blog/2016/10/19/adding-a-new-rest-endpoint-to-elasticsearch-updated-for-ga/ですが、別のエンドポイントを作成することになります。エンドポイントを拡張するためにelasticsearchプラグインを書くには?
検索ガードhttps://github.com/floragunncom/search-guardが見つかりました。ソースコードから自分のプラグインを作成することができますが、extends Plugin implements ActionPlugin
を作成できますが、行き詰まっていてどこに行くのかわかりません。ソースコードから
ActionFilter
自分自身を追加し、すべての要求がまた私の
ActionFilter
スルー行こう
/_search
エンドポイントスルーに行くように、
Plugin
に行動チェーンにそれを追加することができます知っています。しかし、私は
indices:data/read/search
(検索)または
indices:admin/delete
(インデックスの削除)の可能性のあるアクションの完全なリストを持っていません。 tryとerrorを使うにはあまりにも多くのものがあります。
ActionFilter
では、Request
オブジェクトからPOST要求ペイロードを取得するにはどうすればよいですか。 /_search
リクエストでは、私はSearchRequest
を取得しましたが、ブラウザからhttpリクエストヘッダーがありません。コールスタックは、ES parseSearchRequest
を使用してRestRequest
を変換し、
RestSearchAction#prepareRequest
で
at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:171)
at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:145)
at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:87)
at org.elasticsearch.client.node.NodeClient.executeLocally(NodeClient.java:75)
at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:64)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:403)
at org.elasticsearch.client.support.AbstractClient.search(AbstractClient.java:530)
at org.elasticsearch.rest.action.search.RestSearchAction.lambda$prepareRequest$0(RestSearchAction.java:83)
at org.elasticsearch.rest.action.search.RestSearchAction$$Lambda$1405/1241306571.accept(Unknown Source)
at org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:82)
のようなものですActionFilter
ためので、私は、呼び出し履歴を取得するために使用するスタックトレースを使用することができますが見つかり
==更新==
データはSearchRequest
になります。つまり、ActionFitler
にRestRequest
を取得できません。このデータを渡す別の方法があるはずですか?私は存在を拡張したいので、別のエンドポイントを追加しないようにもう一度エンドポイントを追加しないでください。RestHandler