c29a1c9b0e009ea7444373013449845bfd2d3e67.svn-base 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.xxl.job.admin.controller;
  2. import com.xxl.job.admin.controller.annotation.PermissionLimit;
  3. import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
  4. import com.xxl.job.core.biz.AdminBiz;
  5. import com.xxl.job.core.biz.model.HandleCallbackParam;
  6. import com.xxl.job.core.biz.model.RegistryParam;
  7. import com.xxl.job.core.biz.model.ReturnT;
  8. import com.xxl.job.core.util.GsonTool;
  9. import com.xxl.job.core.util.XxlJobRemotingUtil;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.web.bind.annotation.PathVariable;
  12. import org.springframework.web.bind.annotation.RequestBody;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.ResponseBody;
  15. import javax.annotation.Resource;
  16. import javax.servlet.http.HttpServletRequest;
  17. import java.util.List;
  18. /**
  19. * Created by xuxueli on 17/5/10.
  20. */
  21. @Controller
  22. @RequestMapping("/api")
  23. public class JobApiController {
  24. @Resource
  25. private AdminBiz adminBiz;
  26. /**
  27. * api
  28. *
  29. * @param uri
  30. * @param data
  31. * @return
  32. */
  33. @RequestMapping("/{uri}")
  34. @ResponseBody
  35. @PermissionLimit(limit=false)
  36. public ReturnT<String> api(HttpServletRequest request, @PathVariable("uri") String uri, @RequestBody(required = false) String data) {
  37. // valid
  38. if (!"POST".equalsIgnoreCase(request.getMethod())) {
  39. return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, HttpMethod not support.");
  40. }
  41. if (uri==null || uri.trim().length()==0) {
  42. return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping empty.");
  43. }
  44. if (XxlJobAdminConfig.getAdminConfig().getAccessToken()!=null
  45. && XxlJobAdminConfig.getAdminConfig().getAccessToken().trim().length()>0
  46. && !XxlJobAdminConfig.getAdminConfig().getAccessToken().equals(request.getHeader(XxlJobRemotingUtil.XXL_JOB_ACCESS_TOKEN))) {
  47. return new ReturnT<String>(ReturnT.FAIL_CODE, "The access token is wrong.");
  48. }
  49. // services mapping
  50. if ("callback".equals(uri)) {
  51. List<HandleCallbackParam> callbackParamList = GsonTool.fromJson(data, List.class, HandleCallbackParam.class);
  52. return adminBiz.callback(callbackParamList);
  53. } else if ("registry".equals(uri)) {
  54. RegistryParam registryParam = GsonTool.fromJson(data, RegistryParam.class);
  55. return adminBiz.registry(registryParam);
  56. } else if ("registryRemove".equals(uri)) {
  57. RegistryParam registryParam = GsonTool.fromJson(data, RegistryParam.class);
  58. return adminBiz.registryRemove(registryParam);
  59. } else {
  60. return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping("+ uri +") not found.");
  61. }
  62. }
  63. }