瀏覽代碼

Add explicit plugin method for MappedActionFilter (#108515)

In preparation for #108210, this commit adds a separate method to gather
MappedActionFilter instances. For now this remains compatible with the
existing getActionFilters by allowing MappedActionFilter to exist in
both places.
Ryan Ernst 1 年之前
父節點
當前提交
4c58522ab3

+ 1 - 0
server/src/main/java/org/elasticsearch/action/ActionModule.java

@@ -807,6 +807,7 @@ public class ActionModule extends AbstractModule {
                     finalFilters.add(filter);
                 }
             }
+            mappedFilters.addAll(plugin.getMappedActionFilters());
         }
         if (mappedFilters.isEmpty() == false) {
             finalFilters.add(new MappedActionFilters(mappedFilters));

+ 8 - 0
server/src/main/java/org/elasticsearch/plugins/ActionPlugin.java

@@ -15,6 +15,7 @@ import org.elasticsearch.action.RequestValidators;
 import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.support.ActionFilter;
+import org.elasticsearch.action.support.MappedActionFilter;
 import org.elasticsearch.action.support.TransportAction;
 import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
 import org.elasticsearch.cluster.node.DiscoveryNodes;
@@ -61,6 +62,13 @@ public interface ActionPlugin {
         return Collections.emptyList();
     }
 
+    /**
+     * Action filters applying to a single action added by this plugin.
+     */
+    default Collection<MappedActionFilter> getMappedActionFilters() {
+        return Collections.emptyList();
+    }
+
     /**
      * Rest handlers added by this plugin.
      */