diff --git a/src/main/java/com/cmcc/hy/phoenix/common/ConstValue.java b/src/main/java/com/cmcc/hy/phoenix/common/ConstValue.java index 1be1521a..e24c65c1 100644 --- a/src/main/java/com/cmcc/hy/phoenix/common/ConstValue.java +++ b/src/main/java/com/cmcc/hy/phoenix/common/ConstValue.java @@ -24,6 +24,14 @@ public class ConstValue { public class ProtocolCmdId { public static final int AUTH_LOGIN = 10; public static final int AUTH_LOGOUT = 11; + + public static final int START_DISPOSE_CMD = 400; + public static final int STOP_DISPOSE_CMD = 401; + public static final int STOP_DISPOSE_CMD_BY_IP = 402; + public static final int STOP_DISPOSE_CMD_BY_POINT = 403; + public static final int STOP_DISPOSE_CMD_ALL = 404; + public static final int GET_DISPOSE_TASK_LIST = 405; + public static final int GET_DISPOSE_TASK_DETAIL = 406; } public enum DisposeDeviceType { diff --git a/src/main/java/com/cmcc/hy/phoenix/controller/taskController.java b/src/main/java/com/cmcc/hy/phoenix/controller/taskController.java new file mode 100644 index 00000000..2415c2ec --- /dev/null +++ b/src/main/java/com/cmcc/hy/phoenix/controller/taskController.java @@ -0,0 +1,91 @@ +package com.cmcc.hy.phoenix.controller; + +import com.cmcc.hy.phoenix.annotation.bodyencdec.ReqDec; +import com.cmcc.hy.phoenix.common.ConstValue; +import com.cmcc.hy.phoenix.common.ErrorCode; +import com.cmcc.hy.phoenix.pojo.dto.ProtocolDTO; +import com.cmcc.hy.phoenix.pojo.vo.ProtocolResp; +import com.cmcc.hy.phoenix.service.LoginService; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.Builder; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpHeaders; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +import java.security.NoSuchAlgorithmException; +import java.util.Objects; + +import static com.cmcc.hy.phoenix.common.ErrorCode.ERR_OK; +import static com.cmcc.hy.phoenix.common.ErrorCode.ERR_UNKNOWNCMD; + +@Controller +@RequestMapping(value = "/handle") +@Slf4j +@Api(value = "抗DDoS处置平台认证接口", tags = "抗DDoS处置平台认证接口") +@Component +public class taskController { + + @Resource + private ObjectMapper objectMapper; + + @Resource + private LoginService loginService; + + @PostMapping("/command") + @ResponseBody + @ApiOperation("处置任务接口") + @ReqDec + @Builder + public ProtocolResp disposeTaskCommand(@RequestBody(required = true) ProtocolDTO mr, + @RequestHeader HttpHeaders headers) { + // 存放返回信息Json字符串 + String msgCtx = ""; + ErrorCode err = ERR_OK; + + log.info("请求token: {}", headers.get("Authorization")); + log.info("请求参数 {}", mr); + + // 参数检测 + if (mr == null) { + err = ErrorCode.ERR_PARAMS; + return ProtocolResp.result(err, -1, msgCtx); + } else if (mr.IsRequestTimeout()) { + err = ErrorCode.ERR_REQTIMEOUT; + } else { + //try{ + // 获取 Token + String token = Objects. + requireNonNull(headers.get("Authorization")) + .get(0).replaceFirst("Bearer ", ""); + + // 判断Head头是否存在 + if (headers.get("Authorization") == null) { + err = ErrorCode.ERR_MISSAUTHHEAD; + } else if ((err = loginService.authTokenCheck(token)) == ERR_OK) { + // Token 正确则处理业务 + switch (mr.getCmdId()) { + case ConstValue.ProtocolCmdId.START_DISPOSE_CMD: + break; + case ConstValue.ProtocolCmdId.STOP_DISPOSE_CMD: + break; + + default: + err = ErrorCode.ERR_UNKNOWNCMD; + } + } +// } catch (JsonProcessingException | NoSuchAlgorithmException ex) { +// log.error(ex.getMessage()); +// err = ErrorCode.ERR_EXCEPTION; +// } + } + + return ProtocolResp.result(err, mr.getCmdId(), msgCtx); + } +}