xuxueli преди 5 години
родител
ревизия
287e05f0d2
променени са 1 файла, в които са добавени 40 реда и са изтрити 10 реда
  1. 40 10
      xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobApiController.java

+ 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;
2 2
 
3 3
 import com.xxl.job.admin.controller.annotation.PermissionLimit;
4 4
 import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
5
+import com.xxl.job.admin.core.util.JacksonUtil;
5 6
 import com.xxl.job.core.biz.AdminBiz;
6 7
 import com.xxl.job.core.biz.model.HandleCallbackParam;
7 8
 import com.xxl.job.core.biz.model.RegistryParam;
@@ -32,20 +33,30 @@ public class JobApiController {
32 33
     /**
33 34
      * callback
34 35
      *
35
-     * @param callbackParamList
36
+     * @param data
36 37
      * @return
37 38
      */
38 39
     @RequestMapping("/callback")
39 40
     @ResponseBody
40 41
     @PermissionLimit(limit=false)
41
-    public ReturnT<String> callback(HttpServletRequest request, @RequestBody List<HandleCallbackParam> callbackParamList) {
42
-
42
+    public ReturnT<String> callback(HttpServletRequest request, @RequestBody(required = false) String data) {
43
+        // valid
43 44
         if (XxlJobAdminConfig.getAdminConfig().getAccessToken()!=null
44 45
                 && XxlJobAdminConfig.getAdminConfig().getAccessToken().trim().length()>0
45 46
                 && !XxlJobAdminConfig.getAdminConfig().getAccessToken().equals(request.getHeader(XxlJobRemotingUtil.XXL_RPC_ACCESS_TOKEN))) {
46 47
             return new ReturnT<String>(ReturnT.FAIL_CODE, "The access token is wrong.");
47 48
         }
48 49
 
50
+        // param
51
+        List<HandleCallbackParam> callbackParamList = null;
52
+        try {
53
+            callbackParamList = JacksonUtil.readValue(data, List.class, HandleCallbackParam.class);
54
+        } catch (Exception e) { }
55
+        if (callbackParamList==null || callbackParamList.size()==0) {
56
+            return new ReturnT<String>(ReturnT.FAIL_CODE, "The request data invalid.");
57
+        }
58
+
59
+        // invoke
49 60
         return adminBiz.callback(callbackParamList);
50 61
     }
51 62
 
@@ -54,44 +65,63 @@ public class JobApiController {
54 65
     /**
55 66
      * registry
56 67
      *
57
-     * @param registryParam
68
+     * @param data
58 69
      * @return
59 70
      */
60 71
     @RequestMapping("/registry")
61 72
     @ResponseBody
62 73
     @PermissionLimit(limit=false)
63
-    public ReturnT<String> registry(HttpServletRequest request, @RequestBody RegistryParam registryParam) {
64
-
74
+    public ReturnT<String> registry(HttpServletRequest request, @RequestBody(required = false) String data) {
75
+        // valid
65 76
         if (XxlJobAdminConfig.getAdminConfig().getAccessToken()!=null
66 77
                 && XxlJobAdminConfig.getAdminConfig().getAccessToken().trim().length()>0
67 78
                 && !XxlJobAdminConfig.getAdminConfig().getAccessToken().equals(request.getHeader(XxlJobRemotingUtil.XXL_RPC_ACCESS_TOKEN))) {
68 79
             return new ReturnT<String>(ReturnT.FAIL_CODE, "The access token is wrong.");
69 80
         }
70 81
 
82
+        // param
83
+        RegistryParam registryParam = null;
84
+        try {
85
+            registryParam = JacksonUtil.readValue(data, RegistryParam.class);
86
+        } catch (Exception e) {}
87
+        if (registryParam == null) {
88
+            return new ReturnT<String>(ReturnT.FAIL_CODE, "The request data invalid.");
89
+        }
90
+
91
+        // invoke
71 92
         return adminBiz.registry(registryParam);
72 93
     }
73 94
 
74 95
     /**
75 96
      * registry remove
76 97
      *
77
-     * @param registryParam
98
+     * @param data
78 99
      * @return
79 100
      */
80 101
     @RequestMapping("/registryRemove")
81 102
     @ResponseBody
82 103
     @PermissionLimit(limit=false)
83
-    public ReturnT<String> registryRemove(HttpServletRequest request, @RequestBody RegistryParam registryParam) {
84
-
104
+    public ReturnT<String> registryRemove(HttpServletRequest request, @RequestBody(required = false) String data) {
105
+        // valid
85 106
         if (XxlJobAdminConfig.getAdminConfig().getAccessToken()!=null
86 107
                 && XxlJobAdminConfig.getAdminConfig().getAccessToken().trim().length()>0
87 108
                 && !XxlJobAdminConfig.getAdminConfig().getAccessToken().equals(request.getHeader(XxlJobRemotingUtil.XXL_RPC_ACCESS_TOKEN))) {
88 109
             return new ReturnT<String>(ReturnT.FAIL_CODE, "The access token is wrong.");
89 110
         }
90 111
 
112
+        // param
113
+        RegistryParam registryParam = null;
114
+        try {
115
+            registryParam = JacksonUtil.readValue(data, RegistryParam.class);
116
+        } catch (Exception e) {}
117
+        if (registryParam == null) {
118
+            return new ReturnT<String>(ReturnT.FAIL_CODE, "The request data invalid.");
119
+        }
120
+
121
+        // invoke
91 122
         return adminBiz.registryRemove(registryParam);
92 123
     }
93 124
 
94
-
95 125
     // ---------------------- job biz ----------------------
96 126
 
97 127
 }