diff --git a/pom.xml b/pom.xml index d8ba47be..e3ac1ec4 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ </parent> <groupId>com.dispose</groupId> <artifactId>phoenix_ddos_handle</artifactId> - <version>2.0.0</version> + <version>2.0.1</version> <name>phoenix_ddos_handle</name> <description>Dispose Platform</description> <dependencies> diff --git a/src/main/java/com/dispose/controller/DisposeTaskController.java b/src/main/java/com/dispose/controller/DisposeTaskController.java index 5a836a0f..268a37f8 100644 --- a/src/main/java/com/dispose/controller/DisposeTaskController.java +++ b/src/main/java/com/dispose/controller/DisposeTaskController.java @@ -4,6 +4,7 @@ import com.dispose.common.CommonEnumHandler; import com.dispose.common.DDoSAttackType; import com.dispose.common.DisposeCapacityType; import com.dispose.common.DisposeConfigValue; +import com.dispose.common.DisposeObjectType; import com.dispose.common.ErrorCode; import com.dispose.common.Helper; import com.dispose.common.NetflowDirection; @@ -96,30 +97,31 @@ public class DisposeTaskController { // 构造处置任务参数 DisposeTask task = DisposeTask.builder() - .deviceId(Long.parseLong(Optional.ofNullable(req.getId()).orElse("-1"))) - .accountId(userAccountService.getUserIdByAuthHead(Objects.requireNonNull(headers.get("Authorization")) - .get(0))) - .disposeCapacity(CommonEnumHandler.codeOf(DisposeCapacityType.class, - req.getType())) - .disposeIp(Helper.ipAddressNormalize(req.getDisposeIp())) - .planEndTime(String.valueOf(req.getDisposeTime())) - .flowDirection(CommonEnumHandler.codeOf(NetflowDirection.class, - Optional.ofNullable(req.getFlowDirection()) - .orElse(2))) - .attackType(DDoSAttackType.getTypeMaskFromAttackType( - Optional.ofNullable(req.getAttackType()) - .orElse(new Integer[]{DDoSAttackType.ALL_ATTACKS.getValue()}))) - .flowBandWidth(Optional.ofNullable(req.getFlowBandwidth()) - .orElse(DisposeConfigValue.DEFAULT_DISPOSE_BANDWIDTH)) - .build(); + .deviceId(Long.parseLong(Optional.ofNullable(req.getId()).orElse("-1"))) + .accountId(userAccountService.getUserIdByAuthHead(Objects.requireNonNull(headers.get("Authorization")) + .get(0))) + .disposeCapacity(CommonEnumHandler.codeOf(DisposeCapacityType.class, + req.getType())) + .disposeObject(Helper.ipAddressNormalize(req.getDisposeIp())) + .objectType(DisposeObjectType.IP) + .planEndTime(String.valueOf(req.getDisposeTime())) + .flowDirection(CommonEnumHandler.codeOf(NetflowDirection.class, + Optional.ofNullable(req.getFlowDirection()) + .orElse(2))) + .attackType(DDoSAttackType.getTypeMaskFromAttackType( + Optional.ofNullable(req.getAttackType()) + .orElse(new Integer[]{DDoSAttackType.ALL_ATTACKS.getValue()}))) + .flowBandWidth(Optional.ofNullable(req.getFlowBandwidth()) + .orElse(DisposeConfigValue.DEFAULT_DISPOSE_BANDWIDTH)) + .build(); // 创建处置任务 MulReturnType<ErrorCode, DisposeTask> ret = disposeTaskService.createTask(task); // 设置返回消息 TaskStartRsp rspInfo = TaskStartRsp.builder() - .disposeIp(task.getDisposeIp()) - .build(); + .disposeIp(task.getDisposeObject()) + .build(); rspInfo.setStatus(ret.getFirstParam().getCode()); rspInfo.setMessage(new String[]{ret.getFirstParam().getMsg()}); @@ -157,40 +159,41 @@ public class DisposeTaskController { DisposeCapacityType capType = CommonEnumHandler.codeOf(DisposeCapacityType.class, req.getType()); String endTime = String.valueOf(req.getDisposeTime()); NetflowDirection netDir = CommonEnumHandler.codeOf(NetflowDirection.class, - Optional.ofNullable(req.getFlowDirection()).orElse(2)); + Optional.ofNullable(req.getFlowDirection()).orElse(2)); Long attackType = DDoSAttackType.getTypeMaskFromAttackType(Optional.ofNullable(req.getAttackType()) - .orElse(new Integer[]{DDoSAttackType.ALL_ATTACKS.getValue()})); + .orElse(new Integer[]{DDoSAttackType.ALL_ATTACKS.getValue()})); Integer flowBand = Optional.ofNullable(req.getFlowBandwidth()) - .orElse(DisposeConfigValue.DEFAULT_DISPOSE_BANDWIDTH); + .orElse(DisposeConfigValue.DEFAULT_DISPOSE_BANDWIDTH); TaskStartMulRsp mulRsp = TaskStartMulRsp.builder() - .items(new ArrayList<>()) - .build(); + .items(new ArrayList<>()) + .build(); for (String ip : req.getMulDisposeIp()) { // 构造处置任务参数 DisposeTask task = DisposeTask.builder() - .deviceId(devId) - .accountId(aId) - .disposeCapacity(capType) - .disposeIp(Helper.ipAddressNormalize(ip)) - .planEndTime(endTime) - .flowDirection(netDir) - .attackType(attackType) - .flowBandWidth(flowBand) - .build(); + .deviceId(devId) + .accountId(aId) + .disposeCapacity(capType) + .disposeObject(Helper.ipAddressNormalize(ip)) + .objectType(DisposeObjectType.IP) + .planEndTime(endTime) + .flowDirection(netDir) + .attackType(attackType) + .flowBandWidth(flowBand) + .build(); // 创建处置任务 MulReturnType<ErrorCode, DisposeTask> ret = disposeTaskService.createTask(task); // 设置返回消息 TaskStartRsp rspInfo = TaskStartRsp.builder() - .disposeIp(ip) - .build(); + .disposeIp(ip) + .build(); // 启动任务成功 if (ret.getFirstParam() == ErrorCode.ERR_OK || - ret.getFirstParam() == ErrorCode.ERR_TASKRUNNING) { + ret.getFirstParam() == ErrorCode.ERR_TASKRUNNING) { rspInfo.setTaskId(ret.getSecondParam().getId().toString()); rspInfo.setExpireTime(ret.getSecondParam().getPlanEndTime()); } @@ -231,13 +234,13 @@ public class DisposeTaskController { // 停止成功 if (ret.getFirstParam() == ErrorCode.ERR_OK) { rspInfo.setDisposeDevice(ret.getSecondParam().getDeviceTask().stream() - .map(DeviceTask::getDeviceId) - .map(String::valueOf) - .toArray(String[]::new)); + .map(DeviceTask::getDeviceId) + .map(String::valueOf) + .toArray(String[]::new)); rspInfo.setType(ret.getSecondParam().getDisposeCapacity().getValue()); - rspInfo.setDisposeIp(ret.getSecondParam().getDisposeIp()); + rspInfo.setDisposeIp(ret.getSecondParam().getDisposeObject()); rspInfo.setLeftTime(String.valueOf(Math.abs( - Helper.getTimestampDiffNow(ret.getSecondParam().getPlanEndTime())) / 60)); + Helper.getTimestampDiffNow(ret.getSecondParam().getPlanEndTime())) / 60)); } rspInfo.setTaskId(tId); @@ -260,26 +263,27 @@ public class DisposeTaskController { @ResponseBody @ApiOperation("获取处置任务") public ProtocolRespDTO<GetTaskRsp> getAllDisposeTask( - @Validated(ValidGroups.ProtocolCommonValid.class) - @RequestBody ProtocolReqDTO<BasePagesGetReq> mr + @Validated(ValidGroups.ProtocolCommonValid.class) + @RequestBody ProtocolReqDTO<BasePagesGetReq> mr ) { GetTaskRsp rspInfo = GetTaskRsp.builder().build(); List<GetTaskDetail> getTaskDetail = new ArrayList<>(); //获取TaskId列表 - List<Long> reqTaskIds = Arrays.stream(Optional.ofNullable(mr.getMsgContent().getTaskId()).orElse(new String[]{})). - map(Long::parseLong).collect(Collectors.toList()); + List<Long> reqTaskIds = Arrays.stream(Optional.ofNullable(mr.getMsgContent().getTaskId()) + .orElse(new String[]{})). + map(Long::parseLong).collect(Collectors.toList()); //获取所有可用处置任务 List<DisposeTask> taskList = disposeTaskService.getAllDisposeTask(); List<Long> idArray = taskList.stream().filter(v -> reqTaskIds.size() == 0 || reqTaskIds.contains(v.getId())) - .map(DisposeTask::getId).collect(Collectors.toList()); + .map(DisposeTask::getId).collect(Collectors.toList()); if (idArray.size() > 0) { MulReturnType<PageInfo<DisposeTask>, List<DisposeTask>> ret = - disposeTaskService.getPageDisposeTask(idArray, - mr.getMsgContent().getStartPage(), - mr.getMsgContent().getPageSize()); + disposeTaskService.getPageDisposeTask(idArray, + mr.getMsgContent().getStartPage(), + mr.getMsgContent().getPageSize()); // 分页信息 rspInfo.setCurPageNumber(ret.getFirstParam().getPageNum()); @@ -289,29 +293,29 @@ public class DisposeTaskController { ret.getSecondParam().forEach(v -> { GetTaskDetail taskDetail = GetTaskDetail.builder() - .taskId(String.valueOf(v.getId())) - .accountId(String.valueOf(v.getAccountId())) - .disposeCapacity(v.getDisposeCapacity().getValue()) - .disposeIp(v.getDisposeIp()) - .createTime(v.getCreateTime()) - .planEndTime(v.getPlanEndTime()) - .endTime(v.getEndTime()) - .flowDirection(v.getFlowDirection().getValue()) - .attackType(v.getAttackType().toString()) - .flowBandWidth(v.getFlowBandWidth()) - .currentStatus(v.getCurrentStatus().getValue()) - .deviceTask(new ArrayList<>()) - .build(); + .taskId(String.valueOf(v.getId())) + .accountId(String.valueOf(v.getAccountId())) + .disposeCapacity(v.getDisposeCapacity().getValue()) + .disposeIp(v.getDisposeObject()) + .createTime(v.getCreateTime()) + .planEndTime(v.getPlanEndTime()) + .endTime(v.getEndTime()) + .flowDirection(v.getFlowDirection().getValue()) + .attackType(v.getAttackType().toString()) + .flowBandWidth(v.getFlowBandWidth()) + .currentStatus(v.getCurrentStatus().getValue()) + .deviceTask(new ArrayList<>()) + .build(); taskDetail.setStatus(ErrorCode.ERR_OK.getCode()); taskDetail.setMessage(new String[]{ErrorCode.ERR_OK.getMsg()}); v.getDeviceTask().forEach(k -> { GetDeviceTaskDetail deviceTaskDetail = GetDeviceTaskDetail.builder() - .devTaskId(String.valueOf(k.getId())) - .devId(String.valueOf(k.getDeviceId())) - .externId(String.valueOf(k.getExternId())) - .status(k.getStatus()) - .build(); + .devTaskId(String.valueOf(k.getId())) + .devId(String.valueOf(k.getDeviceId())) + .externId(String.valueOf(k.getExternId())) + .status(k.getStatus()) + .build(); taskDetail.getDeviceTask().add(deviceTaskDetail); }); @@ -322,19 +326,19 @@ public class DisposeTaskController { // 设置不存在taskId的错误码 if (reqTaskIds.stream().anyMatch(v -> taskList.stream().noneMatch(k -> k.getId().equals(v)))) { reqTaskIds.stream() - .filter(v -> taskList.stream().noneMatch(k -> k.getId().equals(v))) - .forEach(v -> { - GetTaskDetail td = GetTaskDetail.builder().build(); - td.setTaskId(String.valueOf(v)); - td.setStatus(ErrorCode.ERR_NOSUCHTASK.getCode()); - td.setMessage(new String[]{ErrorCode.ERR_NOSUCHTASK.getMsg()}); - getTaskDetail.add(td); - }); + .filter(v -> taskList.stream().noneMatch(k -> k.getId().equals(v))) + .forEach(v -> { + GetTaskDetail td = GetTaskDetail.builder().build(); + td.setTaskId(String.valueOf(v)); + td.setStatus(ErrorCode.ERR_NOSUCHTASK.getCode()); + td.setMessage(new String[]{ErrorCode.ERR_NOSUCHTASK.getMsg()}); + getTaskDetail.add(td); + }); } // 对返回的信息按照TaskID排序 rspInfo.setItems(getTaskDetail.stream().sorted(Comparator.comparing(GetTaskDetail::getTaskId)) - .collect(Collectors.toList())); + .collect(Collectors.toList())); return ProtocolRespDTO.result(ErrorCode.ERR_OK, rspInfo); } diff --git a/src/main/java/com/dispose/pojo/entity/DisposeTask.java b/src/main/java/com/dispose/pojo/entity/DisposeTask.java index ef2acc04..b3f5aa7b 100644 --- a/src/main/java/com/dispose/pojo/entity/DisposeTask.java +++ b/src/main/java/com/dispose/pojo/entity/DisposeTask.java @@ -1,6 +1,7 @@ package com.dispose.pojo.entity; import com.dispose.common.DisposeCapacityType; +import com.dispose.common.DisposeObjectType; import com.dispose.common.DisposeTaskStatus; import com.dispose.common.NetflowDirection; import com.fasterxml.jackson.annotation.JsonInclude; @@ -56,9 +57,13 @@ public class DisposeTask implements Serializable { */ private DisposeCapacityType disposeCapacity; /** - * The Dispose ip. + * The Dispose object. */ - private String disposeIp; + private String disposeObject; + /** + * The Object type. + */ + private DisposeObjectType objectType; /** * The Create time. */ @@ -88,7 +93,7 @@ public class DisposeTask implements Serializable { */ private DisposeTaskStatus currentStatus; /** - * The Task info. + * The Device task. */ private List<DeviceTask> deviceTask; } diff --git a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java index 6993bbb9..ae83bf41 100644 --- a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java +++ b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java @@ -68,7 +68,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { deviceTask.getTaskAttackType()); // 调用设备执行处置任务 - ret = ai.getDb().runDispose(disposeTask.getDisposeIp(), disposeTask.getDisposeCapacity(), null, null, null); + ret = ai.getDb().runDispose(disposeTask.getDisposeObject(), disposeTask.getDisposeCapacity(), null, null, null); if (ret.getFirstParam() == ErrorCode.ERR_OK) { // 设置攻击类型任务启动结果 @@ -97,7 +97,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { MulReturnType<ErrorCode, Long> ret; // 调用设备执行处置任务 - ret = ai.getDb().stopDispose(disposeTask.getDisposeIp(), disposeTask.getDisposeCapacity(), null, null, null); + ret = ai.getDb().stopDispose(disposeTask.getDisposeObject(), disposeTask.getDisposeCapacity(), null, null, null); if (ret.getFirstParam() == ErrorCode.ERR_OK) { deviceTaskManager.setAttackTypeStatus(deviceTask.getId(),disposeTask.getFlowDirection(), 0L); @@ -132,7 +132,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { deviceTaskManager.setExecAttackType(deviceTask.getId(), NetflowDirection.DIRECTION_BI, deviceTask.getTaskAttackType()); - ret = ai.getDb().runDispose(disposeTask.getDisposeIp(), disposeTask.getDisposeCapacity(), null, null, + ret = ai.getDb().runDispose(disposeTask.getDisposeObject(), disposeTask.getDisposeCapacity(), null, null, (long) -(Helper.getTimestampDiffNow(disposeTask.getPlanEndTime()) / 60)); if (ret.getFirstParam() == ErrorCode.ERR_OK) { @@ -175,7 +175,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { MulReturnType<ErrorCode, Long> ret; // 停止处置任务 - ret = ai.getDb().stopDispose(disposeTask.getDisposeIp(), disposeTask.getDisposeCapacity(), null, null, + ret = ai.getDb().stopDispose(disposeTask.getDisposeObject(), disposeTask.getDisposeCapacity(), null, null, deviceTask.getExternId()); if (ret.getFirstParam() == ErrorCode.ERR_OK) { @@ -219,7 +219,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { deviceTaskManager.execAttackTypeSetBit(deviceTask.getId(), NetflowDirection.DIRECTION_OUT, t.getValue()); // 调用迪普设备启动处置任务 - ret = ai.getDb().runDispose(disposeTask.getDisposeIp(), disposeTask.getDisposeCapacity(), + ret = ai.getDb().runDispose(disposeTask.getDisposeObject(), disposeTask.getDisposeCapacity(), NetflowDirection.DIRECTION_OUT, t.getValue(), null); if (ret.getFirstParam() == ErrorCode.ERR_OK) { @@ -256,7 +256,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { deviceTaskManager.execAttackTypeSetBit(deviceTask.getId(), NetflowDirection.DIRECTION_IN, t.getValue()); // 调用迪普设备启动处置任务 - ret = ai.getDb().runDispose(disposeTask.getDisposeIp(), disposeTask.getDisposeCapacity(), + ret = ai.getDb().runDispose(disposeTask.getDisposeObject(), disposeTask.getDisposeCapacity(), NetflowDirection.DIRECTION_IN, t.getValue(), null); if (ret.getFirstParam() == ErrorCode.ERR_OK) { @@ -331,7 +331,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { // 出方向 if (disposeTask.getFlowDirection() != NetflowDirection.DIRECTION_IN) { // 调用迪普设备停止处置任务 - ret = ai.getDb().stopDispose(disposeTask.getDisposeIp(), disposeTask.getDisposeCapacity(), + ret = ai.getDb().stopDispose(disposeTask.getDisposeObject(), disposeTask.getDisposeCapacity(), NetflowDirection.DIRECTION_OUT, t.getValue(), null); if (ret.getFirstParam() == ErrorCode.ERR_OK) { @@ -357,7 +357,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { // 入方向 if (disposeTask.getFlowDirection() != NetflowDirection.DIRECTION_OUT) { // 调用迪普设备启动处置任务 - ret = ai.getDb().stopDispose(disposeTask.getDisposeIp(), disposeTask.getDisposeCapacity(), + ret = ai.getDb().stopDispose(disposeTask.getDisposeObject(), disposeTask.getDisposeCapacity(), NetflowDirection.DIRECTION_IN, t.getValue(), null); if (ret.getFirstParam() == ErrorCode.ERR_OK) { @@ -421,7 +421,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { // 清理过期任务 for (DisposeTask v : disposeTaskManager.getExpiredTasks()) { log.info("Task {} {} {} is expired, expect finished at {}", - v.getId(), v.getDisposeCapacity(), v.getDisposeIp(), v.getPlanEndTime()); + v.getId(), v.getDisposeCapacity(), v.getDisposeObject(), v.getPlanEndTime()); // 设置任务状态,过期任务不再为设备创建处置任务 disposeTaskManager.changeDisposeTaskStatus(v.getId(), DisposeTaskStatus.TASK_EXPIRED); } @@ -438,7 +438,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { // 当前设备是否支持该处置能力 .filter(c -> c.getDev().getDevCapacity().stream().anyMatch(m -> m.getCapacityType() == v .getDisposeCapacity())) - .filter(c -> c.getDb().isCarryProtectIp(v.getDisposeIp())) + .filter(c -> c.getDb().isCarryProtectIp(v.getDisposeObject())) .forEach(d -> { log.info("Add dispose task for device: {}", d.getDev()); @@ -467,7 +467,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { AbilityInfo ai = disposeAbilityRouterService.getAbilityDevice(v.getDeviceId()); // 对处置IP生成一个唯一的操作标识符 - String taskStartKey = task.getDisposeIp() + "Start" + ai.getDev().getDeviceType().getDescription(); + String taskStartKey = task.getDisposeObject() + "Start" + ai.getDev().getDeviceType().getDescription(); if (taskCache.containsKey(taskStartKey)) { continue; @@ -526,7 +526,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { AbilityInfo ai = disposeAbilityRouterService.getAbilityDevice(v.getDeviceId()); // 对处置IP生成一个唯一的操作标识符 - String taskStopKey = task.getDisposeIp() + "Stop" + ai.getDev().getDeviceType().getDescription(); + String taskStopKey = task.getDisposeObject() + "Stop" + ai.getDev().getDeviceType().getDescription(); if (taskCache.containsKey(taskStopKey)) { continue; diff --git a/src/main/java/com/dispose/service/impl/DisposeTaskServiceImpl.java b/src/main/java/com/dispose/service/impl/DisposeTaskServiceImpl.java index 62b23978..592875f4 100644 --- a/src/main/java/com/dispose/service/impl/DisposeTaskServiceImpl.java +++ b/src/main/java/com/dispose/service/impl/DisposeTaskServiceImpl.java @@ -41,14 +41,14 @@ public class DisposeTaskServiceImpl implements DisposeTaskService { @Override public MulReturnType<ErrorCode, DisposeTask> createTask(DisposeTask task) { DisposeTask exitTask = disposeTaskManager.getDisposeTask(task.getDeviceId(), - task.getDisposeIp(), task.getDisposeCapacity()); + task.getDisposeObject(), task.getDisposeCapacity()); if (exitTask != null) { return new MulReturnType<>(ErrorCode.ERR_TASKRUNNING, exitTask); } ErrorCode err = disposeAbilityRouterService.verifyDisposeCapacity( - task.getDeviceId(), task.getDisposeIp(), task.getDisposeCapacity() + task.getDeviceId(), task.getDisposeObject(), task.getDisposeCapacity() ); if (err != ErrorCode.ERR_OK) { @@ -100,6 +100,7 @@ public class DisposeTaskServiceImpl implements DisposeTaskService { * * @return the dispose task list */ + @Override public List<DisposeTask> getAllDisposeTask() { return disposeTaskManager.getDisposeTasks(); } diff --git a/src/main/resources/db/data.sql b/src/main/resources/db/data.sql index 58780e8d..8eea2ee1 100644 --- a/src/main/resources/db/data.sql +++ b/src/main/resources/db/data.sql @@ -1,8 +1,8 @@ -- ---------------------------- -- Records of dispose_device -- ---------------------------- -INSERT INTO `dispose_device` VALUES (1, '10.88.77.88:18080', 1, 1, 0, '中移杭研实验室浩瀚清洗设备', 'HaoHan', 'Unknown', 'Unknown', '', '', 'http://%s/DDoSClean/clean', '实验室测试设备', 0); -INSERT INTO `dispose_device` VALUES (2, '10.88.77.15', 0, 1, 0, '中移杭研实验室迪普清洗设备', 'DPTech', 'UMC', 'B5.2.27.7', 'admin', 'UMCAdministrator', 'http://%s/UMC/service/AbnormalFlowCleaningService', '实验室测试设备', 0); +-- INSERT INTO `dispose_device` VALUES (1, '10.88.77.88:18080', 1, 1, 0, '中移杭研实验室浩瀚清洗设备', 'HaoHan', 'Unknown', 'Unknown', '', '', 'http://%s/DDoSClean/clean', '实验室测试设备', 0); +-- INSERT INTO `dispose_device` VALUES (2, '10.88.77.15', 0, 1, 0, '中移杭研实验室迪普清洗设备', 'DPTech', 'UMC', 'B5.2.27.7', 'admin', 'UMCAdministrator', 'http://%s/UMC/service/AbnormalFlowCleaningService', '实验室测试设备', 0); -- ---------------------------- diff --git a/src/main/resources/mappers/DisposeTask.xml b/src/main/resources/mappers/DisposeTask.xml index 14e82295..2bc781dc 100644 --- a/src/main/resources/mappers/DisposeTask.xml +++ b/src/main/resources/mappers/DisposeTask.xml @@ -6,7 +6,8 @@ <id column="deviceId" property="deviceId"/> <id column="accountId" property="accountId"/> <result column="disposeCapacity" property="disposeCapacity" javaType="com.dispose.common.DisposeCapacityType"/> - <result column="disposeIp" property="disposeIp"/> + <result column="disposeObject" property="disposeObject"/> + <result column="objectType" property="objectType" javaType="com.dispose.common.DisposeObjectType"/> <result column="createTime" property="createTime"/> <result column="planEndTime" property="planEndTime"/> <result column="endTime" property="endTime"/> @@ -103,7 +104,7 @@ FROM dispose_task dt LEFT JOIN device_task ti on dt.id = ti.taskId WHERE dt.disposeCapacity = #{capType} AND - dt.disposeIp = #{disposeIp} AND + dt.disposeObject = #{disposeObject} AND dt.currentStatus != ${@com.dispose.common.DisposeTaskStatus@TASK_FINISHED.getValue()} AND dt.currentStatus != ${@com.dispose.common.DisposeTaskStatus@TASK_CANCELED.getValue()} AND dt.currentStatus != ${@com.dispose.common.DisposeTaskStatus@TASK_EXPIRED.getValue()} AND @@ -130,10 +131,10 @@ <insert id="addNewTask" useGeneratedKeys="true" keyProperty="id" parameterType="com.dispose.pojo.entity.DisposeTask"> - INSERT IGNORE INTO dispose_task(deviceId, accountId, disposeCapacity, disposeIp, + INSERT IGNORE INTO dispose_task(deviceId, accountId, disposeCapacity, disposeObject, objectType, planEndTime, flowDirection, attackType, flowBandWidth, currentStatus) - VALUES (#{deviceId}, #{accountId}, #{disposeCapacity}, #{disposeIp}, + VALUES (#{deviceId}, #{accountId}, #{disposeCapacity}, #{disposeObject}, ${objectType}, date_add(now(), interval #{planEndTime} MINUTE), #{flowDirection}, #{attackType}, #{flowBandWidth}, ${@com.dispose.common.DisposeTaskStatus@TASK_NEW.getValue()}) </insert> diff --git a/src/main/resources/test_db/unit_test.sql b/src/main/resources/test_db/unit_test.sql index 27a1825f..623e9489 100644 --- a/src/main/resources/test_db/unit_test.sql +++ b/src/main/resources/test_db/unit_test.sql @@ -116,7 +116,8 @@ CREATE TABLE `dispose_task` ( `deviceId` int(10) NOT NULL COMMENT '处置设备唯一标识符', `accountId` int(10) UNSIGNED NOT NULL COMMENT '用户唯一标识符', `disposeCapacity` int(11) NOT NULL COMMENT '处置能力类型:0:清洗 1:高防 2:黑洞 3:检测', - `disposeIp` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '处置IP', + `disposeObject` varchar(4096) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '处置对象', + `objectType` int(8) NOT NULL COMMENT '处置对象类型:\r\n0:IP\r\n1:域名 \r\n2:URL', `createTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '开始时间', `planEndTime` timestamp(0) NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '计划结束时间', `endTime` timestamp(0) NULL DEFAULT '1970-01-02 00:00:00' COMMENT '实际结束时间', @@ -132,8 +133,8 @@ CREATE TABLE `dispose_task` ( -- ---------------------------- -- Records of dispose_task -- ---------------------------- -INSERT INTO `dispose_task` VALUES (1, -1, 1, 0, '192.168.10.1', CURRENT_TIMESTAMP, date_add(now(), interval 60 MINUTE), null, 2, 8796093022207, 1024, 0); -INSERT INTO `dispose_task` VALUES (2, -1, 1, 0, '192.168.10.2', CURRENT_TIMESTAMP, date_add(now(), interval 60 MINUTE), null, 2, 8796093022207, 1024, 0); +INSERT INTO `dispose_task` VALUES (1, -1, 1, 0, '192.168.10.1', 1, CURRENT_TIMESTAMP, date_add(now(), interval 60 MINUTE), null, 2, 8796093022207, 1024, 0); +INSERT INTO `dispose_task` VALUES (2, -1, 1, 0, '192.168.10.2', 1, CURRENT_TIMESTAMP, date_add(now(), interval 60 MINUTE), null, 2, 8796093022207, 1024, 0); -- ---------------------------- -- Table structure for user_account diff --git a/src/test/java/com/dispose/test/dev/controller/DisposeTaskControllerTest.java b/src/test/java/com/dispose/test/dev/controller/DisposeTaskControllerTest.java index 0a0600e1..0e558321 100644 --- a/src/test/java/com/dispose/test/dev/controller/DisposeTaskControllerTest.java +++ b/src/test/java/com/dispose/test/dev/controller/DisposeTaskControllerTest.java @@ -144,7 +144,7 @@ public class DisposeTaskControllerTest extends InitTestEnvironment { disposeTaskMapper.selectAll().forEach(v -> { if (v.getDeviceId().equals(Long.valueOf(req.getId())) && - v.getDisposeIp().equals(req.getDisposeIp()) && + v.getDisposeObject().equals(req.getDisposeIp()) && v.getAttackType().equals((long) DDoSAttackType.ACK_FLOOD.getValue())) { Assert.assertEquals(Long.valueOf(rspInfo.getMsgContent().getTaskId()), v.getId()); } @@ -164,7 +164,7 @@ public class DisposeTaskControllerTest extends InitTestEnvironment { TaskStartReq req = TaskStartReq.builder() .id(String.valueOf(disposeTask.getDeviceId())) .type(disposeTask.getDisposeCapacity().getValue()) - .disposeIp(disposeTask.getDisposeIp()) + .disposeIp(disposeTask.getDisposeObject()) .disposeTime(60) .flowDirection(NetflowDirection.DIRECTION_IN.getValue()) .attackType(new Integer[]{DDoSAttackType.ACK_FLOOD.getValue()}) diff --git a/src/test/java/com/dispose/test/dev/manager/DisposeTaskManagerTest.java b/src/test/java/com/dispose/test/dev/manager/DisposeTaskManagerTest.java index e1d4548e..539509bd 100644 --- a/src/test/java/com/dispose/test/dev/manager/DisposeTaskManagerTest.java +++ b/src/test/java/com/dispose/test/dev/manager/DisposeTaskManagerTest.java @@ -75,7 +75,7 @@ public class DisposeTaskManagerTest extends InitTestEnvironment { @Test public void a1_disposeIpRunning() { disposeTaskMapper.selectAll().forEach(v -> { - DisposeTask runningResult = disposeTaskManager.getDisposeTask(v.getDeviceId(), v.getDisposeIp(), + DisposeTask runningResult = disposeTaskManager.getDisposeTask(v.getDeviceId(), v.getDisposeObject(), v.getDisposeCapacity()); log.info("runningResult-->{}", runningResult); @@ -178,7 +178,7 @@ public class DisposeTaskManagerTest extends InitTestEnvironment { .deviceId(dId) .accountId(uId) .disposeCapacity(DisposeCapacityType.CLEANUP) - .disposeIp("192.168.0.1") + .disposeObject("192.168.0.1") .planEndTime("30") .flowDirection(NetflowDirection.DIRECTION_BI) .attackType(DDoSAttackType.getTypeMaskFromAttackType(new DDoSAttackType[]{DDoSAttackType.ALL_ATTACKS})) diff --git a/src/test/java/com/dispose/test/dev/mapper/DisposeTaskMapperTest.java b/src/test/java/com/dispose/test/dev/mapper/DisposeTaskMapperTest.java index f194b7fc..fdad2d12 100644 --- a/src/test/java/com/dispose/test/dev/mapper/DisposeTaskMapperTest.java +++ b/src/test/java/com/dispose/test/dev/mapper/DisposeTaskMapperTest.java @@ -76,7 +76,7 @@ public class DisposeTaskMapperTest extends InitTestEnvironment { .deviceId(dId) .accountId(uId) .disposeCapacity(DisposeCapacityType.CLEANUP) - .disposeIp("192.168.0.1") + .disposeObject("192.168.0.1") .planEndTime("30") .flowDirection(NetflowDirection.DIRECTION_BI) .attackType(DDoSAttackType.getTypeMaskFromAttackType(new DDoSAttackType[]{DDoSAttackType.ALL_ATTACKS})) diff --git a/src/test/java/com/dispose/test/dev/service/DeviceTaskManagerServiceTest.java b/src/test/java/com/dispose/test/dev/service/DeviceTaskManagerServiceTest.java index 1ac1cd9e..dee5f256 100644 --- a/src/test/java/com/dispose/test/dev/service/DeviceTaskManagerServiceTest.java +++ b/src/test/java/com/dispose/test/dev/service/DeviceTaskManagerServiceTest.java @@ -98,7 +98,7 @@ public class DeviceTaskManagerServiceTest extends InitTestEnvironment { .deviceId(dId) .accountId(uId) .disposeCapacity(DisposeCapacityType.CLEANUP) - .disposeIp("192.168.0.1") + .disposeObject("192.168.0.1") .planEndTime("30") .flowDirection(NetflowDirection.DIRECTION_BI) .attackType(DDoSAttackType.getTypeMaskFromAttackType(new DDoSAttackType[]{DDoSAttackType.ALL_ATTACKS})) diff --git a/src/test/java/com/dispose/test/dev/service/DisposeTaskServiceTest.java b/src/test/java/com/dispose/test/dev/service/DisposeTaskServiceTest.java index 532e5f1c..cf84643f 100644 --- a/src/test/java/com/dispose/test/dev/service/DisposeTaskServiceTest.java +++ b/src/test/java/com/dispose/test/dev/service/DisposeTaskServiceTest.java @@ -99,7 +99,7 @@ public class DisposeTaskServiceTest extends InitTestEnvironment { .deviceId(disposeDeviceManager.getAllNormalDisposeDevices().get(0).getId()) .accountId(1L) .disposeCapacity(DisposeCapacityType.CLEANUP) - .disposeIp("192.168.5.2") + .disposeObject("192.168.5.2") .planEndTime("30") .flowDirection(NetflowDirection.DIRECTION_IN) .attackType(DDoSAttackType.getTypeMaskFromAttackType(new Integer[]{DDoSAttackType.ALL_ATTACKS.getValue()})) @@ -124,7 +124,7 @@ public class DisposeTaskServiceTest extends InitTestEnvironment { Assert.assertEquals(result.getFirstParam().getCode(), ErrorCode.ERR_TASKRUNNING.getCode()); Assert.assertEquals(result.getSecondParam().getId(), disposeTaskManager.getDisposeTask(newTask.getDeviceId(), - newTask.getDisposeIp(), newTask.getDisposeCapacity()).getId()); + newTask.getDisposeObject(), newTask.getDisposeCapacity()).getId()); }); } @@ -137,7 +137,7 @@ public class DisposeTaskServiceTest extends InitTestEnvironment { .deviceId(disposeDeviceManager.getAllNormalDisposeDevices().get(0).getId()) .accountId(1L) .disposeCapacity(DisposeCapacityType.CLEANUP) - .disposeIp("192.168.5.2") + .disposeObject("192.168.5.2") .planEndTime("30") .flowDirection(NetflowDirection.DIRECTION_IN) .attackType(DDoSAttackType.getTypeMaskFromAttackType(new Integer[]{DDoSAttackType.ALL_ATTACKS.getValue()})) @@ -175,7 +175,7 @@ public class DisposeTaskServiceTest extends InitTestEnvironment { .deviceId(disposeDeviceManager.getAllNormalDisposeDevices().get(0).getId()) .accountId(1L) .disposeCapacity(DisposeCapacityType.CLEANUP) - .disposeIp("192.168.10.2") + .disposeObject("192.168.10.2") .planEndTime("60") .flowDirection(NetflowDirection.DIRECTION_IN) .attackType(DDoSAttackType.getTypeMaskFromAttackType(new Integer[]{DDoSAttackType.ALL_ATTACKS.getValue()})) diff --git a/src/test/java/com/dispose/test/exec/impl/JsonTestCaseRun.java b/src/test/java/com/dispose/test/exec/impl/JsonTestCaseRun.java index f87b8c06..f6e1e433 100644 --- a/src/test/java/com/dispose/test/exec/impl/JsonTestCaseRun.java +++ b/src/test/java/com/dispose/test/exec/impl/JsonTestCaseRun.java @@ -54,7 +54,7 @@ public class JsonTestCaseRun extends CommonRestfulJson implements TestCaseRun { /** * The constant jsonIdFilter. */ - private static final Integer[] jsonIdFilter = new Integer[]{}; + private static final Integer[] jsonIdFilter = new Integer[]{5}; /** * The Spring method rule. */ diff --git a/src/test/java/com/dispose/test/testcase/qa/v200/P2TaskList.java b/src/test/java/com/dispose/test/testcase/qa/v200/P2TaskList.java index 0a78834c..dbc5110a 100644 --- a/src/test/java/com/dispose/test/testcase/qa/v200/P2TaskList.java +++ b/src/test/java/com/dispose/test/testcase/qa/v200/P2TaskList.java @@ -100,7 +100,7 @@ public class P2TaskList { .deviceId(1L) .accountId(1L) .disposeCapacity(DisposeCapacityType.CLEANUP) - .disposeIp("192.168.0." + i) + .disposeObject("192.168.0." + i) .planEndTime("60") .flowDirection(NetflowDirection.DIRECTION_BI) .attackType(DDoSAttackType.getTypeMaskFromAttackType(new DDoSAttackType[]{DDoSAttackType.ALL_ATTACKS}))