Ver Fonte

optimize

xuxueli há 5 anos atrás
pai
commit
55f0f8aacf

+ 40 - 10
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobApiController.java

@@ -2,6 +2,7 @@ package com.xxl.job.admin.controller;
 
 import com.xxl.job.admin.controller.annotation.PermissionLimit;
 import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
+import com.xxl.job.admin.core.util.JacksonUtil;
 import com.xxl.job.core.biz.AdminBiz;
 import com.xxl.job.core.biz.model.HandleCallbackParam;
 import com.xxl.job.core.biz.model.RegistryParam;
@@ -32,20 +33,30 @@ public class JobApiController {
     /**
      * callback
      *
-     * @param callbackParamList
+     * @param data
      * @return
      */
     @RequestMapping("/callback")
     @ResponseBody
     @PermissionLimit(limit=false)
-    public ReturnT<String> callback(HttpServletRequest request, @RequestBody List<HandleCallbackParam> callbackParamList) {
-
+    public ReturnT<String> callback(HttpServletRequest request, @RequestBody(required = false) String data) {
+        // valid
         if (XxlJobAdminConfig.getAdminConfig().getAccessToken()!=null
                 && XxlJobAdminConfig.getAdminConfig().getAccessToken().trim().length()>0
                 && !XxlJobAdminConfig.getAdminConfig().getAccessToken().equals(request.getHeader(XxlJobRemotingUtil.XXL_RPC_ACCESS_TOKEN))) {
             return new ReturnT<String>(ReturnT.FAIL_CODE, "The access token is wrong.");
         }
 
+        // param
+        List<HandleCallbackParam> callbackParamList = null;
+        try {
+            callbackParamList = JacksonUtil.readValue(data, List.class, HandleCallbackParam.class);
+        } catch (Exception e) { }
+        if (callbackParamList==null || callbackParamList.size()==0) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, "The request data invalid.");
+        }
+
+        // invoke
         return adminBiz.callback(callbackParamList);
     }
 
@@ -54,44 +65,63 @@ public class JobApiController {
     /**
      * registry
      *
-     * @param registryParam
+     * @param data
      * @return
      */
     @RequestMapping("/registry")
     @ResponseBody
     @PermissionLimit(limit=false)
-    public ReturnT<String> registry(HttpServletRequest request, @RequestBody RegistryParam registryParam) {
-
+    public ReturnT<String> registry(HttpServletRequest request, @RequestBody(required = false) String data) {
+        // valid
         if (XxlJobAdminConfig.getAdminConfig().getAccessToken()!=null
                 && XxlJobAdminConfig.getAdminConfig().getAccessToken().trim().length()>0
                 && !XxlJobAdminConfig.getAdminConfig().getAccessToken().equals(request.getHeader(XxlJobRemotingUtil.XXL_RPC_ACCESS_TOKEN))) {
             return new ReturnT<String>(ReturnT.FAIL_CODE, "The access token is wrong.");
         }
 
+        // param
+        RegistryParam registryParam = null;
+        try {
+            registryParam = JacksonUtil.readValue(data, RegistryParam.class);
+        } catch (Exception e) {}
+        if (registryParam == null) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, "The request data invalid.");
+        }
+
+        // invoke
         return adminBiz.registry(registryParam);
     }
 
     /**
      * registry remove
      *
-     * @param registryParam
+     * @param data
      * @return
      */
     @RequestMapping("/registryRemove")
     @ResponseBody
     @PermissionLimit(limit=false)
-    public ReturnT<String> registryRemove(HttpServletRequest request, @RequestBody RegistryParam registryParam) {
-
+    public ReturnT<String> registryRemove(HttpServletRequest request, @RequestBody(required = false) String data) {
+        // valid
         if (XxlJobAdminConfig.getAdminConfig().getAccessToken()!=null
                 && XxlJobAdminConfig.getAdminConfig().getAccessToken().trim().length()>0
                 && !XxlJobAdminConfig.getAdminConfig().getAccessToken().equals(request.getHeader(XxlJobRemotingUtil.XXL_RPC_ACCESS_TOKEN))) {
             return new ReturnT<String>(ReturnT.FAIL_CODE, "The access token is wrong.");
         }
 
+        // param
+        RegistryParam registryParam = null;
+        try {
+            registryParam = JacksonUtil.readValue(data, RegistryParam.class);
+        } catch (Exception e) {}
+        if (registryParam == null) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, "The request data invalid.");
+        }
+
+        // invoke
         return adminBiz.registryRemove(registryParam);
     }
 
-
     // ---------------------- job biz ----------------------
 
 }