support * search
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ManagementController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ManagementController.java
index 412a797..c846ce6 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ManagementController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ManagementController.java
@@ -22,12 +22,15 @@
 import org.apache.dubbo.admin.common.util.Constants;
 import org.apache.dubbo.admin.model.dto.ConfigDTO;
 import org.apache.dubbo.admin.service.ManagementService;
+import org.apache.dubbo.admin.service.ProviderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.regex.Pattern;
 
 @RestController
@@ -35,12 +38,14 @@
 public class ManagementController {
 
     private final ManagementService managementService;
+    private final ProviderService providerService;
     private static Pattern CLASS_NAME_PATTERN = Pattern.compile("([a-zA-Z_$][a-zA-Z\\d_$]*\\.)*[a-zA-Z_$][a-zA-Z\\d_$]*");
 
 
     @Autowired
-    public ManagementController(ManagementService managementService) {
+    public ManagementController(ManagementService managementService, ProviderService providerService) {
         this.managementService = managementService;
+        this.providerService = providerService;
     }
 
     @RequestMapping(value ="/config", method = RequestMethod.POST)
@@ -63,23 +68,32 @@
 
     @RequestMapping(value = "/config/{key}", method = RequestMethod.GET)
     public List<ConfigDTO> getConfig(@PathVariable String key, @PathVariable String env) {
-        String config = managementService.getConfig(key);
+        Set<String> query = new HashSet<>();
         List<ConfigDTO> configDTOs = new ArrayList<>();
-        if (config == null) {
-            return configDTOs;
-        }
-        ConfigDTO configDTO = new ConfigDTO();
-        configDTO.setKey(key);
-        configDTO.setConfig(config);
-        configDTO.setPath(managementService.getConfigPath(key));
-        if (Constants.GLOBAL_CONFIG.equals(key)) {
-            configDTO.setScope(Constants.GLOBAL_CONFIG);
-        } else if(CLASS_NAME_PATTERN.matcher(key).matches()){
-            configDTO.setScope(Constants.SERVICE);
+        if (key.equals(Constants.ANY_VALUE)) {
+            query = providerService.findApplications();
+            query.add("global");
         } else {
-            configDTO.setScope(Constants.APPLICATION);
+            query.add(key);
         }
-        configDTOs.add(configDTO);
+        for (String q : query) {
+            String config = managementService.getConfig(q);
+            if (config == null) {
+                continue;
+            }
+            ConfigDTO configDTO = new ConfigDTO();
+            configDTO.setKey(q);
+            configDTO.setConfig(config);
+            configDTO.setPath(managementService.getConfigPath(q));
+            if (Constants.GLOBAL_CONFIG.equals(q)) {
+                configDTO.setScope(Constants.GLOBAL_CONFIG);
+            } else if(CLASS_NAME_PATTERN.matcher(q).matches()){
+                configDTO.setScope(Constants.SERVICE);
+            } else {
+                configDTO.setScope(Constants.APPLICATION);
+            }
+            configDTOs.add(configDTO);
+        }
         return configDTOs;
     }