瀏覽代碼

don't let pluginmanager install modules

Robert Muir 10 年之前
父節點
當前提交
763747df71
共有 1 個文件被更改,包括 10 次插入2 次删除
  1. 10 2
      core/src/main/java/org/elasticsearch/plugins/PluginManager.java

+ 10 - 2
core/src/main/java/org/elasticsearch/plugins/PluginManager.java

@@ -66,6 +66,10 @@ public class PluginManager {
             "plugin",
             "plugin.bat",
             "service.bat"));
+    
+    static final Set<String> MODULES = unmodifiableSet(newHashSet(
+            "lang-expression",
+            "lang-groovy"));
 
     static final Set<String> OFFICIAL_PLUGINS = unmodifiableSet(newHashSet(
             "analysis-icu",
@@ -78,8 +82,6 @@ public class PluginManager {
             "discovery-ec2",
             "discovery-gce",
             "discovery-multicast",
-            "lang-expression",
-            "lang-groovy",
             "lang-javascript",
             "lang-python",
             "mapper-attachments",
@@ -221,6 +223,12 @@ public class PluginManager {
         PluginInfo info = PluginInfo.readFromProperties(root);
         terminal.println(VERBOSE, "%s", info);
 
+        // don't let luser install plugin as a module... 
+        // they might be unavoidably in maven central and are packaged up the same way)
+        if (MODULES.contains(info.getName())) {
+            throw new IOException("plugin '" + info.getName() + "' cannot be installed like this, it is a system module");
+        }
+
         // update name in handle based on 'name' property found in descriptor file
         pluginHandle = new PluginHandle(info.getName(), pluginHandle.version, pluginHandle.user);
         final Path extractLocation = pluginHandle.extractedDir(environment);