diff --git a/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java index d3489df05b0..3f857e79d67 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java @@ -306,13 +306,15 @@ public class ConfigSetsHandler extends RequestHandlerBase implements PermissionN @Override public Name getPermissionName(AuthorizationContext ctx) { - switch (ctx.getHttpMethod()) { - case "GET": - return Name.CONFIG_READ_PERM; - case "POST": + String a = ctx.getParams().get(ConfigSetParams.ACTION); + if (a != null) { + ConfigSetAction action = ConfigSetAction.get(a); + if (action == ConfigSetAction.CREATE || action == ConfigSetAction.DELETE || action == ConfigSetAction.UPLOAD) { return Name.CONFIG_EDIT_PERM; - default: - return null; + } else if (action == ConfigSetAction.LIST) { + return Name.CONFIG_READ_PERM; + } } + return null; } }