From a7cdb3b9dc2e1cfe256faad9cca580fb67918722 Mon Sep 17 00:00:00 2001 From: huangxin Date: Mon, 13 Apr 2020 19:50:13 +0800 Subject: [PATCH] =?UTF-8?q?OCT=20REM:=201.=20=E5=A2=9E=E5=8A=A0=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=8A=82=E7=82=B9=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DispointPointController.java | 87 ----------- .../controller/DisposePointController.java | 145 ++++++++++++++++++ .../cmcc/hy/phoenix/pojo/po/DeciveCaps.java | 17 ++ .../hy/phoenix/pojo/po/DeviceCmdInfo.java | 18 +++ .../hy/phoenix/pojo/po/DisposeAddInfo.java | 28 ++++ .../phoenix/pojo/vo/AddDispointPointReq.java | 17 ++ .../hy/phoenix/pojo/vo/DevManagerResp.java | 15 ++ 7 files changed, 240 insertions(+), 87 deletions(-) delete mode 100644 src/main/java/com/cmcc/hy/phoenix/controller/DispointPointController.java create mode 100644 src/main/java/com/cmcc/hy/phoenix/controller/DisposePointController.java create mode 100644 src/main/java/com/cmcc/hy/phoenix/pojo/po/DeciveCaps.java create mode 100644 src/main/java/com/cmcc/hy/phoenix/pojo/po/DeviceCmdInfo.java create mode 100644 src/main/java/com/cmcc/hy/phoenix/pojo/po/DisposeAddInfo.java create mode 100644 src/main/java/com/cmcc/hy/phoenix/pojo/vo/AddDispointPointReq.java create mode 100644 src/main/java/com/cmcc/hy/phoenix/pojo/vo/DevManagerResp.java diff --git a/src/main/java/com/cmcc/hy/phoenix/controller/DispointPointController.java b/src/main/java/com/cmcc/hy/phoenix/controller/DispointPointController.java deleted file mode 100644 index 498eb403..00000000 --- a/src/main/java/com/cmcc/hy/phoenix/controller/DispointPointController.java +++ /dev/null @@ -1,87 +0,0 @@ -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.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.util.Objects; - -import static com.cmcc.hy.phoenix.common.ErrorCode.ERR_OK; - -@Controller -@RequestMapping(value = "/handle") -@Slf4j -@Api(value = "抗DDoS处置平台认证接口", tags = "抗DDoS处置平台认证接口") -@Component -public class DispointPointController { - - @Resource - private ObjectMapper objectMapper; - - @Resource - private LoginService loginService; - - @PostMapping("/manager") - @ResponseBody - @ApiOperation("节点管理") - @ReqDec - @Builder - public ProtocolResp disposePointManager(@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.ADD_DISPOSE_POINT: - break; - case ConstValue.ProtocolCmdId.DEL_DISPOSE_POINT: - 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); - } -} diff --git a/src/main/java/com/cmcc/hy/phoenix/controller/DisposePointController.java b/src/main/java/com/cmcc/hy/phoenix/controller/DisposePointController.java new file mode 100644 index 00000000..83f06664 --- /dev/null +++ b/src/main/java/com/cmcc/hy/phoenix/controller/DisposePointController.java @@ -0,0 +1,145 @@ +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.entity.DeviceCapacity; +import com.cmcc.hy.phoenix.pojo.entity.DisposeDevice; +import com.cmcc.hy.phoenix.pojo.po.DeviceCmdInfo; +import com.cmcc.hy.phoenix.pojo.vo.AddDispointPointReq; +import com.cmcc.hy.phoenix.pojo.vo.DevManagerResp; +import com.cmcc.hy.phoenix.pojo.vo.ProtocolResp; +import com.cmcc.hy.phoenix.service.DisposeDeviceManager; +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.ArrayList; +import java.util.EnumMap; +import java.util.List; +import java.util.Objects; + +import static com.cmcc.hy.phoenix.common.ErrorCode.ERR_OK; + +@Controller +@RequestMapping(value = "/handle") +@Slf4j +@Api(value = "抗DDoS处置平台认证接口", tags = "抗DDoS处置平台认证接口") +@Component +public class DisposePointController { + + @Resource + private ObjectMapper objectMapper; + + @Resource + private LoginService loginService; + + @Resource + private DisposeDeviceManager disposeDeviceManager; + + @PostMapping("/manager") + @ResponseBody + @ApiOperation("节点管理") + @ReqDec + @Builder + public ProtocolResp disposePointManager(@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.ADD_DISPOSE_POINT: + msgCtx = addDisposePoint(mr); + break; + case ConstValue.ProtocolCmdId.DEL_DISPOSE_POINT: + break; + + default: + err = ErrorCode.ERR_UNKNOWNCMD; + } + } + } catch (JsonProcessingException ex) { + log.error(ex.getMessage()); + err = ErrorCode.ERR_EXCEPTION; + } + } + + return ProtocolResp.result(err, mr.getCmdId(), msgCtx); + } + + private String addDisposePoint(ProtocolDTO mr) + throws JsonProcessingException { + ErrorCode err = ErrorCode.ERR_OK; + + DevManagerResp rspInfo = new DevManagerResp(); + List devRsp = new ArrayList<>(); + rspInfo.setResult(devRsp); + + + AddDispointPointReq reqInfo = objectMapper.readValue(mr.getMsgContent(), AddDispointPointReq.class); + + reqInfo.getItems().forEach(v -> { + // + DisposeDevice dev = new DisposeDevice(); + + dev.setIpv4(v.getIp()); + dev.setType(v.getType()); + dev.setAreaCode(v.getAreaCode()); + dev.setName(v.getName()); + dev.setReadme(v.getReadme()); + dev.setManufacturer(v.getManufacturer()); + dev.setModel(v.getModel()); + dev.setVersion(v.getVersion()); + + dev.setDevCaps(new ArrayList<>()); + + v.getCapacity().forEach(k -> { + DeviceCapacity devCap = new DeviceCapacity(); + devCap.setCapacity(k.getType()); + devCap.setTolFlowCapacity(k.getTolFlowCapacity()); + dev.getDevCaps().add(devCap); + }); + + EnumMap ret = disposeDeviceManager.addNewDisposeDevice(dev); + + ErrorCode errno = ret.keySet().iterator().next(); + devRsp.add(new DeviceCmdInfo(v.getId(), String.valueOf(ret.get(errno)), errno.getCode(), errno.getMsg())); + + }); + + return objectMapper.writeValueAsString(rspInfo); + } +} diff --git a/src/main/java/com/cmcc/hy/phoenix/pojo/po/DeciveCaps.java b/src/main/java/com/cmcc/hy/phoenix/pojo/po/DeciveCaps.java new file mode 100644 index 00000000..4ec2d696 --- /dev/null +++ b/src/main/java/com/cmcc/hy/phoenix/pojo/po/DeciveCaps.java @@ -0,0 +1,17 @@ +package com.cmcc.hy.phoenix.pojo.po; + +import lombok.*; +import org.springframework.lang.Nullable; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class DeciveCaps { + private int type; + @Nullable + private int tolFlowCapacity; + @Nullable + private String disposeIp; +} diff --git a/src/main/java/com/cmcc/hy/phoenix/pojo/po/DeviceCmdInfo.java b/src/main/java/com/cmcc/hy/phoenix/pojo/po/DeviceCmdInfo.java new file mode 100644 index 00000000..33d2b142 --- /dev/null +++ b/src/main/java/com/cmcc/hy/phoenix/pojo/po/DeviceCmdInfo.java @@ -0,0 +1,18 @@ +package com.cmcc.hy.phoenix.pojo.po; + +import com.fasterxml.jackson.annotation.JsonFilter; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@AllArgsConstructor +@Builder +public class DeviceCmdInfo { + private String id; + private String devId; + private int status; + private String message; +} diff --git a/src/main/java/com/cmcc/hy/phoenix/pojo/po/DisposeAddInfo.java b/src/main/java/com/cmcc/hy/phoenix/pojo/po/DisposeAddInfo.java new file mode 100644 index 00000000..d253c858 --- /dev/null +++ b/src/main/java/com/cmcc/hy/phoenix/pojo/po/DisposeAddInfo.java @@ -0,0 +1,28 @@ +package com.cmcc.hy.phoenix.pojo.po; + +import lombok.*; +import org.springframework.lang.Nullable; + +import java.util.List; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class DisposeAddInfo { + private String id; + private int type; + private String name; + private String ip; + private int areaCode; + @Nullable + private String manufacturer; + @Nullable + private String model; + @Nullable + private String version; + @Nullable + private String readme; + private List capacity; +} diff --git a/src/main/java/com/cmcc/hy/phoenix/pojo/vo/AddDispointPointReq.java b/src/main/java/com/cmcc/hy/phoenix/pojo/vo/AddDispointPointReq.java new file mode 100644 index 00000000..49f950be --- /dev/null +++ b/src/main/java/com/cmcc/hy/phoenix/pojo/vo/AddDispointPointReq.java @@ -0,0 +1,17 @@ +package com.cmcc.hy.phoenix.pojo.vo; + +import com.cmcc.hy.phoenix.pojo.po.DisposeAddInfo; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class AddDispointPointReq { + private List items; +} diff --git a/src/main/java/com/cmcc/hy/phoenix/pojo/vo/DevManagerResp.java b/src/main/java/com/cmcc/hy/phoenix/pojo/vo/DevManagerResp.java new file mode 100644 index 00000000..605d2cab --- /dev/null +++ b/src/main/java/com/cmcc/hy/phoenix/pojo/vo/DevManagerResp.java @@ -0,0 +1,15 @@ +package com.cmcc.hy.phoenix.pojo.vo; + +import com.cmcc.hy.phoenix.pojo.po.DeviceCmdInfo; +import lombok.*; + +import java.util.List; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class DevManagerResp { + private List result; +}