1、规则删去策略模板、防护对象。增加sdl字段

2、任务增加策略模板、防护对象
3、相应地方修改
This commit is contained in:
PushM
2024-05-28 02:21:58 +08:00
parent df19bef4fa
commit 388201a97f
22 changed files with 428 additions and 359 deletions

View File

@@ -1,8 +1,6 @@
package com.realtime.protection.configuration.entity.rule.dynamicrule; package com.realtime.protection.configuration.entity.rule.dynamicrule;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.realtime.protection.configuration.entity.defense.object.ProtectObject;
import com.realtime.protection.configuration.utils.enums.audit.AuditStatusEnum; import com.realtime.protection.configuration.utils.enums.audit.AuditStatusEnum;
import com.realtime.protection.configuration.utils.enums.audit.AuditStatusValidator; import com.realtime.protection.configuration.utils.enums.audit.AuditStatusValidator;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
@@ -46,19 +44,7 @@ public class DynamicRuleObject {
@Schema(description = "动态规则创建用户所属部门", accessMode = Schema.AccessMode.READ_ONLY) @Schema(description = "动态规则创建用户所属部门", accessMode = Schema.AccessMode.READ_ONLY)
private String dynamicRuleCreateDepart; private String dynamicRuleCreateDepart;
//动态规则选择的防护对象ids
@NotNull(message = "防护对象不能为NULL")
@NotEmpty(message = "防护对象不能为空")
@JsonProperty("protect_object_ids")
@Schema(description = "请求时发送防护对象ID", accessMode = Schema.AccessMode.WRITE_ONLY, requiredMode = Schema.RequiredMode.REQUIRED)
private List<Integer> protectObjectIds;
@JsonProperty("protect_objects")
@Schema(description = "响应时回复防护对象完整信息", accessMode = Schema.AccessMode.READ_ONLY)
private List<ProtectObject> protectObjects;
@JsonProperty("strategy_template_name")
@Schema(description = "动态规则选择的策略模板", accessMode = Schema.AccessMode.READ_ONLY)
private String templateName;
//还没有建立外键 //还没有建立外键
@@ -73,40 +59,23 @@ public class DynamicRuleObject {
@JsonProperty("dynamic_rule_source_system") @JsonProperty("dynamic_rule_source_system")
@Schema(description = "动态规则数据来源系统", example = "bw系统", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "动态规则数据来源系统", example = "bw系统", requiredMode = Schema.RequiredMode.REQUIRED)
private String dynamicRuleSourceSystem; private String dynamicRuleSourceSystem;
@JsonProperty("dynamic_rule_event_type")
@Schema(description = "动态规则事件类型", example = "1", requiredMode = Schema.RequiredMode.REQUIRED)
private String dynamicRuleEventType;
@NotNull
@JsonProperty("template_id")
@Schema(description = "策略模板id", example = "1", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer templateId;
// @NotNull
@JsonProperty("dynamic_rule_protect_level")
@Max(value = 3)
@Min(value = 1)
@Schema(description = "防护等级1代表日常态、2代表应急态、3代表紧急态", example = "1", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer dynamicRuleProtectLevel;
@NotNull // @NotNull
@JsonProperty("dynamic_rule_priority") @JsonProperty("dynamic_rule_priority")
@Schema(description = "优先级", example = "1", requiredMode = Schema.RequiredMode.REQUIRED) // @Schema(description = "优先级", example = "1", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer dynamicRulePriority; private Integer dynamicRulePriority;
@NotNull // @NotNull
// @JsonProperty("dynamic_rule_range") // @JsonProperty("dynamic_rule_range")
// @Schema(description = "范围", example = "北京", requiredMode = Schema.RequiredMode.REQUIRED) // @Schema(description = "范围", example = "北京", requiredMode = Schema.RequiredMode.REQUIRED)
// private String dynamicRuleRange; // private String dynamicRuleRange;
// @NotNull // @NotNull
@JsonProperty("dynamic_rule_frequency") @JsonProperty("dynamic_rule_frequency")
@Schema(description = "频率", example = "1", requiredMode = Schema.RequiredMode.REQUIRED) // @Schema(description = "频率", example = "1", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer dynamicRuleFrequency; private Integer dynamicRuleFrequency;
@NotNull // @NotNull
@JsonProperty("log_rule_id")
@Schema(description = "筛选条件-日志规则id", example = "1", requiredMode = Schema.RequiredMode.REQUIRED)
private Long logRuleId;
@JsonProperty("dynamic_rule_audit_status") @JsonProperty("dynamic_rule_audit_status")
@ExcelIgnore
@Schema(description = "动态规则审核状态0为未审核1为已退回2为审核通过", example = "2", accessMode = Schema.AccessMode.READ_ONLY) @Schema(description = "动态规则审核状态0为未审核1为已退回2为审核通过", example = "2", accessMode = Schema.AccessMode.READ_ONLY)
private Integer auditStatus; private Integer auditStatus;
@@ -120,6 +89,14 @@ public class DynamicRuleObject {
@Schema(description = "审核用户部门", example = "部门1") @Schema(description = "审核用户部门", example = "部门1")
private String auditUserDepart; private String auditUserDepart;
@JsonProperty("bw_sql")
@Schema(description = "BW系统所需sql", example = "select * from table1 where rule_id=12222")
private String bwSql;
@JsonProperty("description")
@Schema(description = "动态规则描述", example = "动态规则描述")
private String description;
public void checkAuditStatusValidate(AuditStatusEnum newAuditStatus) { public void checkAuditStatusValidate(AuditStatusEnum newAuditStatus) {
if (!List.of(AuditStatusEnum.AUDITED.getNum(), AuditStatusEnum.USING.getNum()).contains(this.getAuditStatus())) { if (!List.of(AuditStatusEnum.AUDITED.getNum(), AuditStatusEnum.USING.getNum()).contains(this.getAuditStatus())) {
throw new IllegalArgumentException("规则《" + this.getDynamicRuleName() + "》原审批状态非法"); throw new IllegalArgumentException("规则《" + this.getDynamicRuleName() + "》原审批状态非法");

View File

@@ -138,8 +138,8 @@ public class StaticRuleObject {
@ExcelProperty("优先级") @ExcelProperty("优先级")
@Max(value = 3) @Max(value = 3)
@Min(value = 1) @Min(value = 1)
@Schema(description = "优先级,1代表高2代表中3代表低", example = "1", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "优先级,1代表高2代表中3代表低", example = "1")
private Integer staticRulePriority; private Integer staticRulePriority = 1;
// @JsonProperty("static_rule_range") // @JsonProperty("static_rule_range")
// @ExcelProperty("范围") // @ExcelProperty("范围")
// @Schema(description = "范围", example = "北京", requiredMode = Schema.RequiredMode.REQUIRED) // @Schema(description = "范围", example = "北京", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -147,7 +147,7 @@ public class StaticRuleObject {
@JsonProperty("static_rule_frequency") @JsonProperty("static_rule_frequency")
@ExcelIgnore @ExcelIgnore
@Min(value = 1) @Min(value = 1)
@Schema(description = "频率最低为1", example = "1", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "频率最低为1", example = "1")
private Integer staticRuleFrequency = 2; private Integer staticRuleFrequency = 2;
@JsonProperty("audit_user_name") @JsonProperty("audit_user_name")

View File

@@ -1,6 +1,7 @@
package com.realtime.protection.configuration.entity.task; package com.realtime.protection.configuration.entity.task;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.realtime.protection.configuration.entity.defense.object.ProtectObject;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Future; import jakarta.validation.constraints.Future;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@@ -101,4 +102,40 @@ public class Task {
@JsonProperty("audit_user_depart") @JsonProperty("audit_user_depart")
@Schema(description = "审核用户部门", example = "部门1") @Schema(description = "审核用户部门", example = "部门1")
private String auditUserDepart; private String auditUserDepart;
/*
策略模板(事件类型、防护等级)都移动到任务表中
*/
@JsonProperty("event_type")
@Schema(description = "事件类型", example = "反射型ddos")
private String eventType;
@JsonProperty("protect_level")
@Schema(description = "防护等级", example = "低=1中=2高=3")
private Integer protectLevel;
@JsonProperty("template_id")
@Schema(description = "策略模板ID", example = "1")
private Integer templateId;
@JsonProperty("template_name")
@Schema(description = "策略模板名称", example = "策略模板1")
private String templateName;
@JsonProperty("source_system")
@Schema(description = "数据来源系统", example = "bw系统")
private String sourceSystem;
@JsonProperty("protect_object_ids")
@Schema(description = "防护对象ID列表", example = "[1, 2, 3]")
private List<Integer> protectObjectIds;
@JsonProperty("protect_objects")
@Schema(description = "完整防护对象列表", example = "[{protect_object_id: 1, protect_object_name: '北京'}, {protect_object_id: 2, protect_object_name: '上海'}]",
accessMode = Schema.AccessMode.READ_ONLY)
private List<ProtectObject> protectObjects;
} }

View File

@@ -61,9 +61,9 @@ public class TaskCommandInfo {
private String eventType; private String eventType;
@Schema(description = "指令下发频率", example = "30") @Schema(description = "指令下发频率", example = "30")
@NotNull(message = "指令下发频率不能为空。") // @NotNull(message = "指令下发频率不能为空。")
@JsonProperty("frequency") @JsonProperty("frequency")
private Integer frequency; private Integer frequency = 3;
@Schema(description = "任务开始时间", example = "2025-10-14T10:23:33") @Schema(description = "任务开始时间", example = "2025-10-14T10:23:33")
@NotNull(message = "任务开始时间不能为空。") @NotNull(message = "任务开始时间不能为空。")

View File

@@ -22,8 +22,7 @@ public class AlertMessageService {
private final AlertMessageMapper alertMessageMapper; private final AlertMessageMapper alertMessageMapper;
public AlertMessageService( public AlertMessageService(
CommandService commandService, CommandService commandService, AlertMessageMapper alertMessageMapper) {
AlertMessageMapper alertMessageMapper) {
this.commandService = commandService; this.commandService = commandService;
this.alertMessageMapper = alertMessageMapper; this.alertMessageMapper = alertMessageMapper;
} }

View File

@@ -15,14 +15,10 @@ public interface DynamicRuleMapper {
//新建动态规则 //新建动态规则
void newDynamicRule(@Param("object") DynamicRuleObject dynamicRuleObject); void newDynamicRule(@Param("object") DynamicRuleObject dynamicRuleObject);
//新建动态规则与保护对象关联
Boolean newDynamicRulProtectObjectConcat(long dynamicRuleId, Integer protectObjectId);
void deleteDynamicRuleObject(Integer dynamicRuleId); void deleteDynamicRuleObject(Integer dynamicRuleId);
DynamicRuleObject queryDynamicRuleById(Integer dynamicRuleId); DynamicRuleObject queryDynamicRuleById(Integer dynamicRuleId);
List<ProtectObject> queryProtectObjectByRuleId(Integer dynamicRuleId);
Boolean updateDynamicRuleObject(@Param("dynamicRuleId") Integer dynamicRuleId, @Param("object") DynamicRuleObject dynamicRuleObject); Boolean updateDynamicRuleObject(@Param("dynamicRuleId") Integer dynamicRuleId, @Param("object") DynamicRuleObject dynamicRuleObject);
@@ -36,12 +32,6 @@ public interface DynamicRuleMapper {
String auditUserName, String createDate, String auditUserName, String createDate,
Integer page, Integer pageSize); Integer page, Integer pageSize);
void deleteDynamicRuleProtectObjectConcat(Integer dynamicRuleId);
TemplateNew queryTemplateByRuleId(Integer dynamicRuleId);
boolean newDynamicRulProtectObjectsConcat(Integer dynamicRuleId, List<Integer> protectObjectIds);
boolean queryProtectObjectById(Integer protectObjectId); boolean queryProtectObjectById(Integer protectObjectId);
Integer queryDynamicRuleTotalNum(String dynamicRuleName, Integer dynamicRuleId, Integer queryDynamicRuleTotalNum(String dynamicRuleName, Integer dynamicRuleId,

View File

@@ -1,7 +1,6 @@
package com.realtime.protection.server.rule.dynamicrule; package com.realtime.protection.server.rule.dynamicrule;
import com.alibaba.excel.util.ListUtils; import com.alibaba.excel.util.ListUtils;
import com.realtime.protection.configuration.entity.defense.template.TemplateNew;
import com.realtime.protection.configuration.entity.rule.dynamicrule.DynamicRuleObject; import com.realtime.protection.configuration.entity.rule.dynamicrule.DynamicRuleObject;
import com.realtime.protection.configuration.utils.Counter; import com.realtime.protection.configuration.utils.Counter;
import com.realtime.protection.configuration.utils.SqlSessionWrapper; import com.realtime.protection.configuration.utils.SqlSessionWrapper;
@@ -33,13 +32,6 @@ public class DynamicRuleService {
@Transactional @Transactional
public Integer newDynamicRuleObject(DynamicRuleObject dynamicRule) { public Integer newDynamicRuleObject(DynamicRuleObject dynamicRule) {
//判断protectObject id是否有效
boolean ProtectObjIdValid = dynamicRule.getProtectObjectIds().stream()
.allMatch(dynamicRuleMapper::queryProtectObjectById);
if (!ProtectObjIdValid) {
throw new IllegalArgumentException("protect object id is invalid");
}
dynamicRule.setDynamicRuleDisplayId( dynamicRule.setDynamicRuleDisplayId(
"DTGZ-" "DTGZ-"
+ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")) + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"))
@@ -48,11 +40,8 @@ public class DynamicRuleService {
); );
dynamicRuleMapper.newDynamicRule(dynamicRule); dynamicRuleMapper.newDynamicRule(dynamicRule);
Integer dynamicRuleId = dynamicRule.getDynamicRuleId();
dynamicRule.getProtectObjectIds().forEach(
protectObjectId -> dynamicRuleMapper.newDynamicRulProtectObjectConcat(dynamicRuleId, protectObjectId));
return dynamicRuleId; return dynamicRule.getDynamicRuleId();
} }
//批量新建多个动态规则 //批量新建多个动态规则
@@ -117,20 +106,7 @@ public class DynamicRuleService {
//查询DynamicRule //查询DynamicRule
DynamicRuleObject dynamicRuleObject = dynamicRuleMapper.queryDynamicRuleById(dynamicRuleId); DynamicRuleObject dynamicRuleObject = dynamicRuleMapper.queryDynamicRuleById(dynamicRuleId);
if (dynamicRuleObject == null){ if (dynamicRuleObject == null){
throw new IllegalArgumentException("dynamic rule id is invalid"); throw new IllegalArgumentException("动态规则不存在");
}
//查询DynamicRule关联的ProtectObject
dynamicRuleObject.setProtectObjects(dynamicRuleMapper.queryProtectObjectByRuleId(dynamicRuleId));
//查询DynamicRule关联的template详细信息
TemplateNew template = dynamicRuleMapper.queryTemplateByRuleId(dynamicRuleId);
if (template == null){
//template在表中删除了需要重新设置template感觉这种情况不多见
dynamicRuleObject.setDynamicRuleSourceSystem(null);
dynamicRuleObject.setDynamicRuleEventType(null);
}else{
dynamicRuleObject.setDynamicRuleSourceSystem(template.getSourceSystem());
dynamicRuleObject.setDynamicRuleEventType(template.getTemplateName());
dynamicRuleObject.setDynamicRuleProtectLevel(Integer.valueOf(template.getProtectLevel()));
} }
return dynamicRuleObject; return dynamicRuleObject;
@@ -139,22 +115,24 @@ public class DynamicRuleService {
@Transactional @Transactional
public boolean updateDynamicRuleObject(Integer dynamicRuleId, DynamicRuleObject dynamicRuleObject) { public boolean updateDynamicRuleObject(Integer dynamicRuleId, DynamicRuleObject dynamicRuleObject) {
//更新DynamicRule //更新DynamicRule
dynamicRuleObject.setDynamicRuleModifyTime(LocalDateTime.now());
// dynamicRuleMapper
Boolean idValid = dynamicRuleMapper.updateDynamicRuleObject(dynamicRuleId, dynamicRuleObject); Boolean idValid = dynamicRuleMapper.updateDynamicRuleObject(dynamicRuleId, dynamicRuleObject);
if (!idValid) { if (!idValid) {
throw new IllegalArgumentException("dynamic rule id is invalid"); throw new IllegalArgumentException("动态规则id无效");
} }
/*
//删除DynamicRule关联的ProtectObject //删除DynamicRule关联的ProtectObject
dynamicRuleMapper.deleteDynamicRuleProtectObjectConcat(dynamicRuleId); dynamicRuleMapper.deleteDynamicRuleProtectObjectConcat(dynamicRuleId);
//新增DynamicRule关联的ProtectObject //新增DynamicRule关联的ProtectObject
boolean ProtectObjIdValid = dynamicRuleObject.getProtectObjectIds().stream() boolean ProtectObjIdValid = dynamicRuleObject.getProtectObjectIds().stream()
.allMatch(dynamicRuleMapper::queryProtectObjectById); .allMatch(dynamicRuleMapper::queryProtectObjectById);
if (!ProtectObjIdValid) { if (!ProtectObjIdValid) {
throw new IllegalArgumentException("protect object id is invalid"); throw new IllegalArgumentException("防护对象id无效");
} }
*/
return dynamicRuleMapper.newDynamicRulProtectObjectsConcat(dynamicRuleId, dynamicRuleObject.getProtectObjectIds()); return idValid;
} }
// 批量删除 // 批量删除
@@ -233,11 +211,7 @@ public class DynamicRuleService {
return resultMap; return resultMap;
} }
/**
* 用于任务状态修改时,内部批量更新任务所属动态规则的状态,不需要修改审批人信息
* @param idsWithAuditStatusMap
* @return
*/
public Object updateAuditStatusBatch(Map<Integer, Integer> idsWithAuditStatusMap) { public Object updateAuditStatusBatch(Map<Integer, Integer> idsWithAuditStatusMap) {
//校验id和status是否合法 //校验id和status是否合法
List<Integer> originalAuditStatusList = dynamicRuleMapper.queryAuditStatusByIds(idsWithAuditStatusMap); List<Integer> originalAuditStatusList = dynamicRuleMapper.queryAuditStatusByIds(idsWithAuditStatusMap);

View File

@@ -98,6 +98,7 @@ public class TaskController implements TaskControllerApi {
@RequestParam(value = "event_type", required = false) String eventType, @RequestParam(value = "event_type", required = false) String eventType,
@RequestParam(value = "create_time", required = false) LocalDate createTime, @RequestParam(value = "create_time", required = false) LocalDate createTime,
@RequestParam(value = "start_time", required = false) LocalDate startTime, @RequestParam(value = "start_time", required = false) LocalDate startTime,
@RequestParam(value = "protect_level", required = false) Integer protectLevel,
@RequestParam("page") @Min(1) Integer page, @RequestParam("page") @Min(1) Integer page,
@RequestParam("page_size") @Min(1) Integer pageSize) { @RequestParam("page_size") @Min(1) Integer pageSize) {
@@ -112,11 +113,11 @@ public class TaskController implements TaskControllerApi {
} }
List<Task> tasks = taskService.queryTasks(taskStatus, taskType, taskName, taskCreator, auditStatus, List<Task> tasks = taskService.queryTasks(taskStatus, taskType, taskName, taskCreator, auditStatus,
taskAct, taskAuditor, taskSource, ruleName, taskAct, taskAuditor, taskSource, ruleName,
eventType, createDateStr, startTimeStr, page, pageSize); eventType, createDateStr, startTimeStr,protectLevel, page, pageSize);
return ResponseResult.ok() return ResponseResult.ok()
.setData("task_list", tasks) .setData("task_list", tasks)
.setData("total_num", taskService.queryTaskTotalNum(taskStatus, taskType, taskName, taskCreator, auditStatus, .setData("total_num", taskService.queryTaskTotalNum(taskStatus, taskType, taskName, taskCreator, auditStatus,
taskAct, taskAuditor, taskSource, ruleName,eventType, createDateStr, startTimeStr)); taskAct, taskAuditor, taskSource, ruleName,eventType, createDateStr, startTimeStr,protectLevel));
} }
@Override @Override
@@ -140,6 +141,8 @@ public class TaskController implements TaskControllerApi {
.setData("success", taskService.updateTask(task)); .setData("success", taskService.updateTask(task));
} }
@Override @Override
@GetMapping("/{taskId}/audit/{auditStatus}") @GetMapping("/{taskId}/audit/{auditStatus}")
public ResponseResult changeTaskAuditStatus(@PathVariable @NotNull @Max(10) Integer auditStatus, public ResponseResult changeTaskAuditStatus(@PathVariable @NotNull @Max(10) Integer auditStatus,
@@ -254,11 +257,11 @@ public class TaskController implements TaskControllerApi {
public ResponseResult statistics() { public ResponseResult statistics() {
return ResponseResult.ok() return ResponseResult.ok()
.setData("total_num", taskService.queryTaskTotalNum(null, null, null, null, null, .setData("total_num", taskService.queryTaskTotalNum(null, null, null, null, null,
null, null, null, null,null,null,null)) null, null, null, null,null,null,null,null))
.setData("running_num", taskService.queryTaskTotalNum(StateEnum.RUNNING.getStateNum(), null, null, null, null, .setData("running_num", taskService.queryTaskTotalNum(StateEnum.RUNNING.getStateNum(), null, null, null, null,
null, null, null, null,null,null,null)) null, null, null, null,null,null,null,null))
.setData("finished_num", taskService.queryTaskTotalNum(StateEnum.FINISHED.getStateNum(), null, null, null, null, .setData("finished_num", taskService.queryTaskTotalNum(StateEnum.FINISHED.getStateNum(), null, null, null, null,
null, null, null, null,null,null,null)) null, null, null, null,null,null,null,null))
.setData("unaudit_num", taskService.queryAuditTaskTotalNum( .setData("unaudit_num", taskService.queryAuditTaskTotalNum(
AuditStatusEnum.PENDING.getNum() AuditStatusEnum.PENDING.getNum()
)); ));

View File

@@ -193,6 +193,7 @@ public interface TaskControllerApi {
@Parameter(name = "task_source", description = "任务来源系统"), @Parameter(name = "task_source", description = "任务来源系统"),
@Parameter(name = "rule_name", description = "规则名称"), @Parameter(name = "rule_name", description = "规则名称"),
@Parameter(name = "event_type", description = "事件类型"), @Parameter(name = "event_type", description = "事件类型"),
@Parameter(name = "protect_level", description = "防护等级"),
@Parameter(name = "create_time", description = "任务创建时间",example = "2021-01-01" ), @Parameter(name = "create_time", description = "任务创建时间",example = "2021-01-01" ),
@Parameter(name = "start_time", description = "任务开始时间",example = "2024-04-25" ), @Parameter(name = "start_time", description = "任务开始时间",example = "2024-04-25" ),
@@ -212,6 +213,7 @@ public interface TaskControllerApi {
@RequestParam(value = "event_type", required = false) String eventType, @RequestParam(value = "event_type", required = false) String eventType,
@RequestParam(value = "create_time", required = false) LocalDate createTime, @RequestParam(value = "create_time", required = false) LocalDate createTime,
@RequestParam(value = "start_time", required = false) LocalDate startTime, @RequestParam(value = "start_time", required = false) LocalDate startTime,
@RequestParam(value = "protect_level", required = false) Integer protectLevel,
@RequestParam("page") @Min(1) Integer page, @RequestParam("page") @Min(1) Integer page,
@RequestParam("page_size") @Min(1) Integer pageSize); @RequestParam("page_size") @Min(1) Integer pageSize);

View File

@@ -1,5 +1,6 @@
package com.realtime.protection.server.task; package com.realtime.protection.server.task;
import com.realtime.protection.configuration.entity.defense.object.ProtectObject;
import com.realtime.protection.configuration.entity.task.DynamicTaskInfo; import com.realtime.protection.configuration.entity.task.DynamicTaskInfo;
import com.realtime.protection.configuration.entity.task.Task; import com.realtime.protection.configuration.entity.task.Task;
import com.realtime.protection.configuration.entity.task.TaskCommandInfo; import com.realtime.protection.configuration.entity.task.TaskCommandInfo;
@@ -31,6 +32,7 @@ public interface TaskMapper {
@Param("event_type")String eventType, @Param("event_type")String eventType,
@Param("create_date") String createDateStr, @Param("create_date") String createDateStr,
@Param("start_date")String startDateStr, @Param("start_date")String startDateStr,
@Param("protect_level")Integer protectLevel,
@Param("page") Integer page, @Param("page_size") Integer pageSize); @Param("page") Integer page, @Param("page_size") Integer pageSize);
Task queryTask(@Param("task_id") Long taskId); Task queryTask(@Param("task_id") Long taskId);
@@ -78,7 +80,8 @@ public interface TaskMapper {
@Param("task_create_time") LocalDateTime taskCreateTime, @Param("task_create_time") LocalDateTime taskCreateTime,
@Param("event_type")String eventType, @Param("event_type")String eventType,
@Param("create_date")String createDate, @Param("create_date")String createDate,
@Param("start_date")String startDate); @Param("start_date")String startDate,
@Param("protect_level")Integer protectLevel);
void updateAuditStatusByIdBatch(@Param("idWithAuditStatusBatch") Map<Integer, Integer> idWithAuditStatusBatch); void updateAuditStatusByIdBatch(@Param("idWithAuditStatusBatch") Map<Integer, Integer> idWithAuditStatusBatch);
@@ -94,4 +97,11 @@ public interface TaskMapper {
@Param("auditUserName")String auditUserName, @Param("auditUserName")String auditUserName,
@Param("auditUserId")String auditUserId, @Param("auditUserId")String auditUserId,
@Param("auditUserDepart")String auditUserDepart); @Param("auditUserDepart")String auditUserDepart);
void newTaskProtectObjectConcat(@Param("taskId")Long taskId,
@Param("protectObjectIds")List<Integer> protectObjectIds);
void deleteTaskProtectObjectConcat(Long taskId);
List<ProtectObject> queryProtectObjectsByTaskId(Long id);
} }

View File

@@ -2,6 +2,7 @@ package com.realtime.protection.server.task;
import com.alibaba.excel.util.MapUtils; import com.alibaba.excel.util.MapUtils;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.realtime.protection.configuration.entity.defense.object.ProtectObject;
import com.realtime.protection.configuration.entity.rule.dynamicrule.DynamicRuleObject; import com.realtime.protection.configuration.entity.rule.dynamicrule.DynamicRuleObject;
import com.realtime.protection.configuration.entity.rule.staticrule.StaticRuleObject; import com.realtime.protection.configuration.entity.rule.staticrule.StaticRuleObject;
import com.realtime.protection.configuration.entity.task.DynamicTaskInfo; import com.realtime.protection.configuration.entity.task.DynamicTaskInfo;
@@ -10,6 +11,7 @@ import com.realtime.protection.configuration.entity.task.TaskCommandInfo;
import com.realtime.protection.configuration.utils.Counter; import com.realtime.protection.configuration.utils.Counter;
import com.realtime.protection.configuration.utils.SqlSessionWrapper; import com.realtime.protection.configuration.utils.SqlSessionWrapper;
import com.realtime.protection.configuration.utils.enums.StateEnum; import com.realtime.protection.configuration.utils.enums.StateEnum;
import com.realtime.protection.configuration.utils.enums.TaskTypeEnum;
import com.realtime.protection.configuration.utils.enums.audit.AuditStatusEnum; import com.realtime.protection.configuration.utils.enums.audit.AuditStatusEnum;
import com.realtime.protection.configuration.utils.enums.audit.AuditStatusValidator; import com.realtime.protection.configuration.utils.enums.audit.AuditStatusValidator;
import com.realtime.protection.server.rule.dynamicrule.DynamicRuleMapper; import com.realtime.protection.server.rule.dynamicrule.DynamicRuleMapper;
@@ -54,6 +56,7 @@ public class TaskService {
// task.setTaskCreateUsername("xxx"); // task.setTaskCreateUsername("xxx");
// task.setTaskCreateDepart("xxx"); // task.setTaskCreateDepart("xxx");
task.setTaskDisplayId( task.setTaskDisplayId(
"RW-" "RW-"
+ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")) + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"))
@@ -61,7 +64,6 @@ public class TaskService {
+ String.format("%06d", counter.generateId("task"))); + String.format("%06d", counter.generateId("task")));
taskMapper.newTask(task); taskMapper.newTask(task);
if (task.getStaticRuleIds() != null && !task.getStaticRuleIds().isEmpty()) { if (task.getStaticRuleIds() != null && !task.getStaticRuleIds().isEmpty()) {
staticRuleMapper.queryStaticRuleByIds(task.getStaticRuleIds()).forEach(staticRuleObject -> { staticRuleMapper.queryStaticRuleByIds(task.getStaticRuleIds()).forEach(staticRuleObject -> {
if (!staticRuleObject.getAuditStatus().equals(AuditStatusEnum.AUDITED.getNum())) { if (!staticRuleObject.getAuditStatus().equals(AuditStatusEnum.AUDITED.getNum())) {
@@ -86,6 +88,17 @@ public class TaskService {
}); });
taskMapper.newTaskDynamicRuleConcat(task.getTaskId(), task.getDynamicRuleIds()); taskMapper.newTaskDynamicRuleConcat(task.getTaskId(), task.getDynamicRuleIds());
} }
if (task.getTaskType() != TaskTypeEnum.STATIC.getTaskType()){
//校验防护对象是否存在
boolean ProtectObjIdValid = task.getProtectObjectIds().stream()
.allMatch(dynamicRuleMapper::queryProtectObjectById);
if (!ProtectObjIdValid) {
throw new IllegalArgumentException("部分防护对象不存在");
}
//任务和防护对象多对多关联建立
taskMapper.newTaskProtectObjectConcat(task.getTaskId(), task.getProtectObjectIds());
}
return task.getTaskId(); return task.getTaskId();
} }
@@ -219,10 +232,11 @@ public class TaskService {
String taskAct, String taskAuditor, String taskAct, String taskAuditor,
String taskSource, String ruleName, String taskSource, String ruleName,
String eventType,String createDateStr, String startDateStr, String eventType,String createDateStr, String startDateStr,
Integer protectLevel,
Integer page, Integer pageSize) { Integer page, Integer pageSize) {
List<Task> tasks = taskMapper.queryTasks(taskStatus, taskType, taskName, taskCreator, auditStatus, List<Task> tasks = taskMapper.queryTasks(taskStatus, taskType, taskName, taskCreator, auditStatus,
taskAct, taskAuditor, taskSource, ruleName,eventType, createDateStr, startDateStr, page, pageSize); taskAct, taskAuditor, taskSource, ruleName,eventType, createDateStr, startDateStr,protectLevel, page, pageSize);
for (Task task : tasks) { for (Task task : tasks) {
if (task == null) { if (task == null) {
continue; continue;
@@ -243,6 +257,8 @@ public class TaskService {
if (task == null) { if (task == null) {
return null; return null;
} }
List<ProtectObject> protectObjects = taskMapper.queryProtectObjectsByTaskId(id);
task.setProtectObjects(protectObjects);
task.setStaticRuleIds(taskMapper.queryStaticRuleIdsFromTaskId(task.getTaskId(), task.setStaticRuleIds(taskMapper.queryStaticRuleIdsFromTaskId(task.getTaskId(),
List.of(AuditStatusEnum.AUDITED.getNum(), AuditStatusEnum.USING.getNum()))); List.of(AuditStatusEnum.AUDITED.getNum(), AuditStatusEnum.USING.getNum())));
@@ -260,7 +276,20 @@ public class TaskService {
task.setTaskAuditStatus(AuditStatusEnum.PENDING.getNum()); task.setTaskAuditStatus(AuditStatusEnum.PENDING.getNum());
//校验防护对象是否存在
boolean ProtectObjIdValid = task.getProtectObjectIds().stream()
.allMatch(dynamicRuleMapper::queryProtectObjectById);
if (!ProtectObjIdValid) {
throw new IllegalArgumentException("部分防护对象不存在");
}
//删除task关联的protectObjects
taskMapper.deleteTaskProtectObjectConcat(task.getTaskId());
//更新task
taskMapper.updateTask(task); taskMapper.updateTask(task);
//重新关联task和protectObjects
taskMapper.newTaskProtectObjectConcat(task.getTaskId(), task.getProtectObjectIds());
taskMapper.clearTaskConnectedStaticRule(task.getTaskId()); taskMapper.clearTaskConnectedStaticRule(task.getTaskId());
taskMapper.clearTaskConnectedDynamicRule(task.getTaskId()); taskMapper.clearTaskConnectedDynamicRule(task.getTaskId());
@@ -354,9 +383,9 @@ public class TaskService {
public Integer queryTaskTotalNum(Integer taskStatus, Integer taskType, String taskName, String taskCreator, Integer auditStatus public Integer queryTaskTotalNum(Integer taskStatus, Integer taskType, String taskName, String taskCreator, Integer auditStatus
,String taskAct, String taskAuditor, String taskSource, String ruleName, ,String taskAct, String taskAuditor, String taskSource, String ruleName,
String eventType, String createDate, String startDate) { String eventType, String createDate, String startDate,Integer protectLevel) {
return taskMapper.queryTaskTotalNum(taskStatus, taskType, taskName, taskCreator, auditStatus, return taskMapper.queryTaskTotalNum(taskStatus, taskType, taskName, taskCreator, auditStatus,
taskAct, taskAuditor, taskSource, ruleName,null, eventType, createDate, startDate); taskAct, taskAuditor, taskSource, ruleName,null, eventType, createDate, startDate, protectLevel);
} }
public Boolean updateAuditStatusBatch(Map<Integer, Integer> idsWithAuditStatusMap) { public Boolean updateAuditStatusBatch(Map<Integer, Integer> idsWithAuditStatusMap) {

View File

@@ -163,14 +163,14 @@
t_task.task_type, t_task.task_type,
t_task.task_act, t_task.task_act,
t_dr.dynamic_rule_frequency, -- t_dr.dynamic_rule_frequency,
t_task.task_start_time, t_task.task_start_time,
t_task.task_end_time, t_task.task_end_time,
t_dr.template_id, t_task.template_id,
t_task.task_range, t_task.task_range,
t_dr.dynamic_rule_protect_level, t_task.protect_level,
t_task.task_status, t_task.task_status,
t_tmplate.strategy_template_name t_tmplate.strategy_template_name
@@ -179,7 +179,7 @@
left join realtime_protection.t_dynamic_rule t_dr on left join realtime_protection.t_dynamic_rule t_dr on
(t_task.task_id = t_dr.dynamic_rule_used_task_id and t_dr.dynamic_rule_id = #{dynamicRuleId}) (t_task.task_id = t_dr.dynamic_rule_used_task_id and t_dr.dynamic_rule_id = #{dynamicRuleId})
left join realtime_protection.t_strategy_template_new t_tmplate on left join realtime_protection.t_strategy_template_new t_tmplate on
( t_dr.template_id = t_tmplate.strategy_template_id ) ( t_task.template_id = t_tmplate.strategy_template_id )
where where
t_task.task_id = #{taskId} t_task.task_id = #{taskId}
</select> </select>

View File

@@ -11,53 +11,38 @@
insert into t_dynamic_rule insert into t_dynamic_rule
(dynamic_rule_name, (dynamic_rule_name,
create_time, modify_time, dynamic_rule_create_username, create_time, modify_time, dynamic_rule_create_username,
dynamic_rule_create_depart, template_id, dynamic_rule_protect_level, dynamic_rule_create_depart,
dynamic_rule_priority, dynamic_rule_create_user_id, bw_sql, dynamic_rule_display_id)
dynamic_rule_frequency, dynamic_rule_create_user_id, log_rule_id, dynamic_rule_display_id)
values (#{object.dynamicRuleName}, values (#{object.dynamicRuleName},
NOW(), #{object.dynamicRuleModifyTime}, NOW(), NOW(),
#{object.dynamicRuleCreateUsername}, #{object.dynamicRuleCreateDepart}, #{object.dynamicRuleCreateUsername}, #{object.dynamicRuleCreateDepart},
#{object.templateId}, #{object.dynamicRuleProtectLevel}, #{object.dynamicRuleCreateUserId}, #{object.bwSql}, #{object.dynamicRuleDisplayId})
#{object.dynamicRulePriority},
#{object.dynamicRuleFrequency},
#{object.dynamicRuleCreateUserId}, #{object.logRuleId}, #{object.dynamicRuleDisplayId})
</insert> </insert>
<insert id="newDynamicRulProtectObjectConcat"> <!-- <insert id="newDynamicRulProtectObjectConcat">-->
insert into t_protect_object_dynamic_rule_conn(dynamic_rule_id, protect_object_id) <!-- insert into t_protect_object_dynamic_rule_conn(dynamic_rule_id, protect_object_id)-->
values (#{dynamicRuleId}, #{protectObjectId}) <!-- values (#{dynamicRuleId}, #{protectObjectId})-->
</insert> <!-- </insert>-->
<insert id="newDynamicRules"> <insert id="newDynamicRules">
insert into t_dynamic_rule insert into t_dynamic_rule
(dynamic_rule_name, (dynamic_rule_name,
create_time, modify_time, dynamic_rule_create_username, create_time, modify_time, dynamic_rule_create_username,
dynamic_rule_create_depart, template_id, dynamic_rule_protect_level, dynamic_rule_create_depart,
dynamic_rule_priority, dynamic_rule_create_user_id, bw_sql, dynamic_rule_display_id)
dynamic_rule_frequency, dynamic_rule_create_user_id, log_rule_id, dynamic_rule_display_id
)
values values
<foreach collection="dynamicRuleObjects" item="object" separator=","> <foreach collection="dynamicRuleObjects" item="object" separator=",">
(#{object.dynamicRuleName}, (
NOW(),#{object.dynamicRuleModifyTime}, #{object.dynamicRuleName},
#{object.dynamicRuleCreateUsername},#{object.dynamicRuleCreateDepart}, NOW(), NOW(),
#{object.templateId}, #{object.dynamicRuleProtectLevel}, #{object.dynamicRuleCreateUsername}, #{object.dynamicRuleCreateDepart},
#{object.dynamicRulePriority}, #{object.dynamicRuleRange}, #{object.dynamicRuleCreateUserId}, #{object.bwSql}, #{object.dynamicRuleDisplayId}
#{object.dynamicRuleFrequency}, )
#{object.dynamicRuleCreateUserId},#{object.logRuleId}, #{object.dynamicRuleDisplayId})
</foreach>
</insert>
<insert id="newDynamicRulProtectObjectsConcat">
insert into
t_protect_object_dynamic_rule_conn(dynamic_rule_id, protect_object_id)
values
<foreach collection="protectObjectIds" item="protectObjectId" separator=",">
(#{dynamicRuleId}, #{protectObjectId})
</foreach> </foreach>
</insert> </insert>
<!-- join删除--> <!-- join删除-->
<!-- # delete t_dynamic_rule, t_protect_object_dynamic_rule_conn--> <!-- # delete t_dynamic_rule, t_protect_object_dynamic_rule_conn-->
<!-- # from t_dynamic_rule--> <!-- # from t_dynamic_rule-->
@@ -70,11 +55,7 @@
where dynamic_rule_id = #{dynamicRuleId} where dynamic_rule_id = #{dynamicRuleId}
</delete> </delete>
<!-- 用于update时删去之前的关联--> <!-- 用于update时删去之前的关联-->
<delete id="deleteDynamicRuleProtectObjectConcat">
delete
from t_protect_object_dynamic_rule_conn
where dynamic_rule_id = #{dynamicRuleId}
</delete>
<delete id="deleteDynamicRules"> <delete id="deleteDynamicRules">
delete from t_dynamic_rule delete from t_dynamic_rule
@@ -89,13 +70,10 @@
update t_dynamic_rule update t_dynamic_rule
set set
<if test="object.dynamicRuleName != null">dynamic_rule_name = #{object.dynamicRuleName},</if> <if test="object.dynamicRuleName != null">dynamic_rule_name = #{object.dynamicRuleName},</if>
<if test="object.dynamicRuleModifyTime != null">modify_time = #{object.dynamicRuleModifyTime},</if> <!-- <if test="object.dynamicRuleModifyTime != null">modify_time = #{object.dynamicRuleModifyTime},</if>-->
<if test="object.templateId != null">template_id = #{object.templateId},</if> <if test="object.description != null">description = #{object.description},</if>
<if test="object.dynamicRuleProtectLevel != null">dynamic_rule_protect_level = <if test="object.dynamicRuleSourceSystem != null">source_system = #{object.dynamicRuleSourceSystem},</if>
#{object.dynamicRuleProtectLevel}, <if test="object.bwSql != null">bw_sql = #{object.bwSql},</if>
</if>
<if test="object.dynamicRulePriority != null">dynamic_rule_priority = #{object.dynamicRulePriority},</if>
<if test="object.dynamicRuleFrequency != null">dynamic_rule_frequency = #{object.dynamicRuleFrequency},</if>
modify_time = NOW() modify_time = NOW()
where where
dynamic_rule_id = #{dynamicRuleId} dynamic_rule_id = #{dynamicRuleId}
@@ -160,11 +138,19 @@
<result column="modify_time" property="dynamicRuleModifyTime"/> <result column="modify_time" property="dynamicRuleModifyTime"/>
<result column="dynamic_rule_create_username" property="dynamicRuleCreateUsername"/> <result column="dynamic_rule_create_username" property="dynamicRuleCreateUsername"/>
<result column="dynamic_rule_create_depart" property="dynamicRuleCreateDepart"/> <result column="dynamic_rule_create_depart" property="dynamicRuleCreateDepart"/>
<result column="template_id" property="templateId"/> <!-- <result column="template_id" property="templateId"/>-->
<result column="dynamic_rule_protect_level" property="dynamicRuleProtectLevel"/> <!-- <result column="dynamic_rule_protect_level" property="dynamicRuleProtectLevel"/>-->
<result column="dynamic_rule_priority" property="dynamicRulePriority"/> <!-- <result column="dynamic_rule_priority" property="dynamicRulePriority"/>-->
<result column="dynamic_rule_frequency" property="dynamicRuleFrequency"/> <!-- <result column="dynamic_rule_frequency" property="dynamicRuleFrequency"/>-->
<result column="dynamic_rule_create_user_id" property="dynamicRuleCreateUserId"/> <result column="dynamic_rule_create_user_id" property="dynamicRuleCreateUserId"/>
<result column="dynamic_rule_display_id" property="dynamicRuleDisplayId"/>
<result column="audit_status" property="auditStatus"/>
<result column="audit_user_id" property="auditUserId"/>
<result column="audit_user_name" property="auditUserName"/>
<result column="audit_user_depart" property="auditUserDepart"/>
<result column="bw_sql" property="bwSql"/>
<result column="description" property="description"/>
<result column="source_system" property="dynamicRuleSourceSystem"/>
</resultMap> </resultMap>
@@ -174,24 +160,24 @@
<result column="create_time" property="dynamicRuleCreateTime"/> <result column="create_time" property="dynamicRuleCreateTime"/>
<result column="dynamic_rule_create_username" property="dynamicRuleCreateUsername"/> <result column="dynamic_rule_create_username" property="dynamicRuleCreateUsername"/>
<result column="dynamic_rule_create_depart" property="dynamicRuleCreateDepart"/> <result column="dynamic_rule_create_depart" property="dynamicRuleCreateDepart"/>
<result column="template_id" property="templateId"/> <!-- <result column="template_id" property="templateId"/>-->
<!-- <result column="dynamic_rule_protect_level" property="dynamicRuleProtectLevel"/>--> <!-- <result column="dynamic_rule_protect_level" property="dynamicRuleProtectLevel"/>-->
<result column="dynamic_rule_priority" property="dynamicRulePriority"/> <!-- <result column="dynamic_rule_priority" property="dynamicRulePriority"/>-->
<result column="dynamic_rule_frequency" property="dynamicRuleFrequency"/> <!-- <result column="dynamic_rule_frequency" property="dynamicRuleFrequency"/>-->
<result column="audit_status" property="auditStatus"/> <result column="audit_status" property="auditStatus"/>
<!-- <result column="protect_object_id" property="protectObjectIds"/>--> <!-- <result column="protect_object_id" property="protectObjectIds"/>-->
<result column="event_type" property="dynamicRuleEventType"/> <!-- <result column="event_type" property="dynamicRuleEventType"/>-->
<result column="strategy_template_source_system" property="dynamicRuleSourceSystem"/> <result column="source_system" property="dynamicRuleSourceSystem"/>
<!-- <result column="event_type" property="dynamicRuleSourceSystem"/>--> <!-- <result column="event_type" property="dynamicRuleSourceSystem"/>-->
<result column="protect_level" property="dynamicRuleProtectLevel"/> <!-- <result column="protect_level" property="dynamicRuleProtectLevel"/>-->
<!-- <result column="strategy_template_name" property="templateName"/>-->
<result column="strategy_template_name" property="templateName"/>
<result column="audit_status" property="auditStatus"/>
<result column="dynamic_rule_display_id" property="dynamicRuleDisplayId"/> <result column="dynamic_rule_display_id" property="dynamicRuleDisplayId"/>
<result column="audit_user_name" property="auditUserName"/> <result column="audit_user_name" property="auditUserName"/>
<result column="audit_user_id" property="auditUserId"/> <result column="audit_user_id" property="auditUserId"/>
<result column="audit_user_depart" property="auditUserDepart"/> <result column="audit_user_depart" property="auditUserDepart"/>
<result column="bw_sql" property="bwSql"/>
<result column="description" property="description"/>
</resultMap> </resultMap>
@@ -213,23 +199,13 @@
<result column="protect_object_audit_status" property="protectObjectAuditStatus"/> <result column="protect_object_audit_status" property="protectObjectAuditStatus"/>
</resultMap> </resultMap>
<select id="queryProtectObjectByRuleId"
resultMap="protectObjectMap">
select t_protect_object.*
from t_protect_object
inner join t_protect_object_dynamic_rule_conn
on t_protect_object.protect_object_id = t_protect_object_dynamic_rule_conn.protect_object_id
where t_protect_object_dynamic_rule_conn.dynamic_rule_id = #{dynamicRuleId}
</select>
<select id="queryDynamicRuleObject" <select id="queryDynamicRuleObject"
resultMap="dynamicRulePageQueryMap"> resultMap="dynamicRulePageQueryMap">
select * select *
from t_dynamic_rule from t_dynamic_rule
# left join t_protect_object_dynamic_rule_conn
# on t_dynamic_rule.dynamic_rule_id = t_protect_object_dynamic_rule_conn.dynamic_rule_id
left join t_strategy_template_new
on t_dynamic_rule.template_id = t_strategy_template_new.strategy_template_id
<where> <where>
<if test="dynamicRuleName != null and dynamicRuleName !=''" > <if test="dynamicRuleName != null and dynamicRuleName !=''" >
t_dynamic_rule.dynamic_rule_name like concat('%', #{dynamicRuleName}, '%') t_dynamic_rule.dynamic_rule_name like concat('%', #{dynamicRuleName}, '%')
@@ -238,7 +214,7 @@
and t_dynamic_rule.dynamic_rule_id = #{dynamicRuleId} and t_dynamic_rule.dynamic_rule_id = #{dynamicRuleId}
</if> </if>
<if test="sourceSystem != null and sourceSystem !=''"> <if test="sourceSystem != null and sourceSystem !=''">
and t_strategy_template_new.strategy_template_source_system = #{sourceSystem} and t_dynamic_rule.source_system = #{sourceSystem}
</if> </if>
<if test="creator != null and creator !=''"> <if test="creator != null and creator !=''">
and t_dynamic_rule.dynamic_rule_create_username = #{creator} and t_dynamic_rule.dynamic_rule_create_username = #{creator}
@@ -246,12 +222,7 @@
<if test="auditStatus != null"> <if test="auditStatus != null">
and t_dynamic_rule.audit_status = #{auditStatus} and t_dynamic_rule.audit_status = #{auditStatus}
</if> </if>
<if test="eventType != null and eventType !=''">
and t_strategy_template_new.event_type = #{eventType}
</if>
<if test="protectLevel != null">
and t_strategy_template_new.protect_level = #{protectLevel}
</if>
<if test="auditUserName != null and auditUserName !='' "> <if test="auditUserName != null and auditUserName !='' ">
AND audit_user_name like concat('%', #{auditUserName}, '%') AND audit_user_name like concat('%', #{auditUserName}, '%')
</if> </if>
@@ -284,13 +255,7 @@
</resultMap> </resultMap>
<select id="queryTemplateByRuleId" resultMap="templateMap">
select *
from t_strategy_template_new
inner join t_dynamic_rule
on t_strategy_template_new.strategy_template_id = t_dynamic_rule.template_id
where t_dynamic_rule.dynamic_rule_id = #{dynamicRuleId}
</select>
<select id="queryProtectObjectById" resultType="java.lang.Boolean"> <select id="queryProtectObjectById" resultType="java.lang.Boolean">
select count(*) select count(*)
from t_protect_object from t_protect_object
@@ -300,8 +265,7 @@
<select id="queryDynamicRuleTotalNum" resultType="java.lang.Integer"> <select id="queryDynamicRuleTotalNum" resultType="java.lang.Integer">
SELECT COUNT(*) SELECT COUNT(*)
FROM t_dynamic_rule FROM t_dynamic_rule
left join t_strategy_template_new
on t_dynamic_rule.template_id = t_strategy_template_new.strategy_template_id
<where> <where>
<if test="dynamicRuleName != null"> <if test="dynamicRuleName != null">
t_dynamic_rule.dynamic_rule_name like concat('%', #{dynamicRuleName}, '%') t_dynamic_rule.dynamic_rule_name like concat('%', #{dynamicRuleName}, '%')
@@ -310,7 +274,7 @@
and t_dynamic_rule.dynamic_rule_id = #{dynamicRuleId} and t_dynamic_rule.dynamic_rule_id = #{dynamicRuleId}
</if> </if>
<if test="sourceSystem != null"> <if test="sourceSystem != null">
and t_strategy_template_new.strategy_template_source_system = #{sourceSystem} and t_dynamic_rule.source_system = #{sourceSystem}
</if> </if>
<if test="creator != null"> <if test="creator != null">
and t_dynamic_rule.dynamic_rule_create_username = #{creator} and t_dynamic_rule.dynamic_rule_create_username = #{creator}
@@ -318,12 +282,7 @@
<if test="auditStatus != null"> <if test="auditStatus != null">
and t_dynamic_rule.audit_status = #{auditStatus} and t_dynamic_rule.audit_status = #{auditStatus}
</if> </if>
<if test="eventType != null and eventType !=''">
and t_strategy_template_new.strategy_template_name = #{eventType}
</if>
<if test="protectLevel != null">
and t_strategy_template_new.protect_level = #{protectLevel}
</if>
<if test="auditUserName != null and auditUserName !='' "> <if test="auditUserName != null and auditUserName !='' ">
AND audit_user_name like concat('%', #{auditUserName}, '%') AND audit_user_name like concat('%', #{auditUserName}, '%')
</if> </if>
@@ -337,8 +296,8 @@
resultMap="dynamicRulePageQueryMap"> resultMap="dynamicRulePageQueryMap">
select * select *
from t_dynamic_rule from t_dynamic_rule
left join t_strategy_template_new -- left join t_strategy_template_new
on t_dynamic_rule.template_id = t_strategy_template_new.strategy_template_id -- on t_dynamic_rule.template_id = t_strategy_template_new.strategy_template_id
where dynamic_rule_id in where dynamic_rule_id in
<foreach collection="ids" item="id" open="(" separator="," close=")"> <foreach collection="ids" item="id" open="(" separator="," close=")">
#{id} #{id}

View File

@@ -138,7 +138,7 @@
<select id="queryUsedProtectObjectsTotalNum" <select id="queryUsedProtectObjectsTotalNum"
resultType="java.lang.Integer"> resultType="java.lang.Integer">
SELECT COUNT(DISTINCT protect_object_id) SELECT COUNT(DISTINCT protect_object_id)
FROM t_protect_object_dynamic_rule_conn FROM t_task_protectobject_conn
</select> </select>
<select id="queryAuditStatusByIds" resultType="java.lang.Integer"> <select id="queryAuditStatusByIds" resultType="java.lang.Integer">

View File

@@ -9,12 +9,14 @@
task_act, task_type, task_act, task_type,
task_create_time, task_modify_time, task_create_time, task_modify_time,
task_create_userid, task_create_username, task_create_depart,task_range, task_create_userid, task_create_username, task_create_depart,task_range,
task_display_id) task_display_id, event_type, protect_level, template_id, template_name, source_system)
VALUE (#{task.taskName}, #{task.taskStartTime}, #{task.taskEndTime}, VALUE (#{task.taskName}, #{task.taskStartTime}, #{task.taskEndTime},
#{task.taskAct}, #{task.taskType}, #{task.taskAct}, #{task.taskType},
NOW(), NOW(), NOW(), NOW(),
#{task.taskCreateUserId}, #{task.taskCreateUsername}, #{task.taskCreateDepart},#{task.taskRange}, #{task.taskCreateUserId}, #{task.taskCreateUsername}, #{task.taskCreateDepart},#{task.taskRange},
#{task.taskDisplayId} #{task.taskDisplayId},
#{task.eventType},#{task.protectLevel},#{task.templateId},
#{task.templateName},#{task.sourceSystem}
) )
</insert> </insert>
@@ -61,19 +63,28 @@
<result column="task_display_id" property="taskDisplayId"/> <result column="task_display_id" property="taskDisplayId"/>
<!--策略模板字段-->
<result column="event_type" property="eventType"/>
<result column="protect_level" property="protectLevel"/>
<result column="template_id" property="templateId"/>
<result column="template_name" property="templateName"/>
<result column="source_system" property="sourceSystem"/>
<!--防护对象字段-->
</resultMap> </resultMap>
<select id="queryTasks" resultMap="taskMap"> <select id="queryTasks" resultMap="taskMap">
SELECT t_task.* FROM t_task SELECT t_task.* FROM t_task
<if test="rule_name != null and rule_name != '' and (event_type == null or event_type == '')"> <if test="rule_name != null and rule_name != '' and (event_type == null or event_type == '')">
LEFT JOIN t_static_rule ON t_task.task_id = t_static_rule.static_rule_used_task_id LEFT JOIN t_static_rule ON t_task.task_id = t_static_rule.static_rule_used_task_id
LEFT JOIN t_dynamic_rule ON t_task.task_id = t_dynamic_rule.dynamic_rule_used_task_id LEFT JOIN t_dynamic_rule ON t_task.task_id = t_dynamic_rule.dynamic_rule_used_task_id
</if> </if>
<if test="event_type != null and event_type != ''"> <!-- <if test="event_type != null and event_type != ''">-->
LEFT JOIN t_static_rule ON t_task.task_id = t_static_rule.static_rule_used_task_id <!-- LEFT JOIN t_static_rule ON t_task.task_id = t_static_rule.static_rule_used_task_id-->
LEFT JOIN t_dynamic_rule ON t_task.task_id = t_dynamic_rule.dynamic_rule_used_task_id <!-- LEFT JOIN t_dynamic_rule ON t_task.task_id = t_dynamic_rule.dynamic_rule_used_task_id-->
LEFT JOIN t_strategy_template_new ON t_dynamic_rule.template_id = t_strategy_template_new.strategy_template_id <!-- LEFT JOIN t_strategy_template_new ON t_dynamic_rule.template_id = t_strategy_template_new.strategy_template_id-->
</if> <!-- </if>-->
<where> <where>
<if test="rule_name != null and rule_name != ''"> <if test="rule_name != null and rule_name != ''">
@@ -107,7 +118,7 @@
AND task_source LIKE CONCAT('%', #{task_source}, '%') AND task_source LIKE CONCAT('%', #{task_source}, '%')
</if> </if>
<if test="event_type != null and event_type != '' "> <if test="event_type != null and event_type != '' ">
AND t_strategy_template_new.event_type LIKE CONCAT('%', #{event_type}, '%') AND event_type LIKE CONCAT('%', #{event_type}, '%')
</if> </if>
<if test="create_date != null and create_date != '' "> <if test="create_date != null and create_date != '' ">
AND task_crate_time LIKE CONCAT('%', #{create_date}, '%') AND task_crate_time LIKE CONCAT('%', #{create_date}, '%')
@@ -115,6 +126,9 @@
<if test="start_date != null and start_date != '' "> <if test="start_date != null and start_date != '' ">
AND task_start_time LIKE CONCAT('%', #{start_date}, '%') AND task_start_time LIKE CONCAT('%', #{start_date}, '%')
</if> </if>
<if test="protect_level != null ">
AND protect_level = #{protect_level}
</if>
</where> </where>
@@ -180,6 +194,11 @@
<if test="task.taskStartTime != null">task_start_time = #{task.taskStartTime},</if> <if test="task.taskStartTime != null">task_start_time = #{task.taskStartTime},</if>
<if test="task.taskEndTime != null">task_end_time = #{task.taskEndTime},</if> <if test="task.taskEndTime != null">task_end_time = #{task.taskEndTime},</if>
<if test="task.taskRange != null">task_range = #{task.taskRange},</if> <if test="task.taskRange != null">task_range = #{task.taskRange},</if>
<if test="task.eventType != null">event_type = #{task.eventType},</if>
<if test="task.protectLevel != null">protect_level = #{task.protectLevel},</if>
<if test="task.templateId != null">template_id = #{task.templateId},</if>
<if test="task.templateName != null">template_name = #{task.templateName},</if>
<if test="task.sourceSystem != null">source_system = #{task.sourceSystem},</if>
task_modify_time = NOW(), task_modify_time = NOW(),
</set> </set>
WHERE task_id = #{task.taskId} WHERE task_id = #{task.taskId}
@@ -238,7 +257,7 @@
</update> </update>
<update id="changeTaskAuditStatusWithAudior"> <update id="changeTaskAuditStatusWithAudior">
UPDATE t_task UPDATE t_task
SET task_status = #{state}, SET task_status = #{audit_status},
task_modify_time = NOW(), task_modify_time = NOW(),
task_audit_username = #{auditUserName}, task_audit_username = #{auditUserName},
task_audit_userid = #{auditUserId}, task_audit_userid = #{auditUserId},
@@ -270,6 +289,12 @@
WHERE task_id = #{task_id} WHERE task_id = #{task_id}
</delete> </delete>
<delete id="deleteTaskProtectObjectConcat">
DELETE
FROM t_task_protectobject_conn
WHERE task_id = #{taskId}
</delete>
<resultMap id="staticCommandMap" type="com.realtime.protection.configuration.entity.task.TaskCommandInfo"> <resultMap id="staticCommandMap" type="com.realtime.protection.configuration.entity.task.TaskCommandInfo">
<result column="task_name" property="taskName"/> <result column="task_name" property="taskName"/>
<result column="task_create_username" property="taskCreateUsername"/> <result column="task_create_username" property="taskCreateUsername"/>
@@ -313,6 +338,15 @@
#{info.distributePoint},#{info.taskDisplayId} #{info.distributePoint},#{info.taskDisplayId}
); );
</insert> </insert>
<insert id="newTaskProtectObjectConcat">
INSERT INTO t_task_protectobject_conn(task_id, protect_object_id)
VALUES
<foreach collection="protectObjectIds" item="protectObjectId" separator=",">
(
#{taskId}, #{protectObjectId}
)
</foreach>
</insert>
<select id="getStaticCommandInfos" resultMap="staticCommandMap"> <select id="getStaticCommandInfos" resultMap="staticCommandMap">
SELECT t_task.task_name, SELECT t_task.task_name,
@@ -393,11 +427,6 @@
LEFT JOIN t_static_rule ON t_task.task_id = t_static_rule.static_rule_used_task_id LEFT JOIN t_static_rule ON t_task.task_id = t_static_rule.static_rule_used_task_id
LEFT JOIN t_dynamic_rule ON t_task.task_id = t_dynamic_rule.dynamic_rule_used_task_id LEFT JOIN t_dynamic_rule ON t_task.task_id = t_dynamic_rule.dynamic_rule_used_task_id
</if> </if>
<if test="event_type != null and event_type != ''">
LEFT JOIN t_static_rule ON t_task.task_id = t_static_rule.static_rule_used_task_id
LEFT JOIN t_dynamic_rule ON t_task.task_id = t_dynamic_rule.dynamic_rule_used_task_id
LEFT JOIN t_strategy_template_new ON t_dynamic_rule.template_id = t_strategy_template_new.strategy_template_id
</if>
<where> <where>
<if test="rule_name != null and task_source != ''"> <if test="rule_name != null and task_source != ''">
@@ -435,7 +464,7 @@
AND DATE(#{task_create_time}) = CURRENT_DATE AND DATE(#{task_create_time}) = CURRENT_DATE
</if> </if>
<if test="event_type != null and event_type != '' "> <if test="event_type != null and event_type != '' ">
AND t_strategy_template_new.event_type LIKE CONCAT('%', #{event_type}, '%') AND event_type LIKE CONCAT('%', #{event_type}, '%')
</if> </if>
<if test="create_date != null and create_date != '' "> <if test="create_date != null and create_date != '' ">
AND task_crate_time LIKE CONCAT('%', #{create_date}, '%') AND task_crate_time LIKE CONCAT('%', #{create_date}, '%')
@@ -443,6 +472,9 @@
<if test="start_date != null and start_date != '' "> <if test="start_date != null and start_date != '' ">
AND task_start_time LIKE CONCAT('%', #{start_date}, '%') AND task_start_time LIKE CONCAT('%', #{start_date}, '%')
</if> </if>
<if test="protect_level != null ">
AND protect_level = #{protect_level}
</if>
</where> </where>
</select> </select>
@@ -465,4 +497,25 @@
FROM t_task FROM t_task
WHERE task_id = #{taskId} WHERE task_id = #{taskId}
</select> </select>
<resultMap id="protectObjectMap" type="com.realtime.protection.configuration.entity.defense.object.ProtectObject">
<id column="protect_object_id" property="protectObjectId"/>
<result column="protect_object_name" property="protectObjectName"/>
<result column="protect_object_system_name" property="protectObjectSystemName"/>
<result column="protect_object_ip" property="protectObjectIPAddress"/>
<result column="protect_object_port" property="protectObjectPort"/>
<result column="protect_object_url" property="protectObjectURL"/>
<result column="protect_object_protocol" property="protectObjectProtocol"/>
<result column="protect_object_audit_status" property="protectObjectAuditStatus"/>
</resultMap>
<select id="queryProtectObjectsByTaskId"
resultMap="protectObjectMap">
select t_protect_object.*
from t_protect_object
inner join t_task_protectobject_conn
on t_protect_object.protect_object_id = t_task_protectobject_conn.protect_object_id
where t_task_protectobject_conn.task_id = #{id}
</select>
</mapper> </mapper>

View File

@@ -163,7 +163,7 @@
<select id="queryUsedTemplateTotalNum" resultType="java.lang.Integer"> <select id="queryUsedTemplateTotalNum" resultType="java.lang.Integer">
SELECT COUNT(DISTINCT template_id) SELECT COUNT(DISTINCT template_id)
FROM t_dynamic_rule FROM t_task
</select> </select>
<select id="queryAuditTemplateTotalNum" resultType="java.lang.Integer"> <select id="queryAuditTemplateTotalNum" resultType="java.lang.Integer">

View File

@@ -177,7 +177,7 @@
</select> </select>
<select id="queryUsedTemplateTotalNum" resultType="java.lang.Integer"> <select id="queryUsedTemplateTotalNum" resultType="java.lang.Integer">
SELECT COUNT(DISTINCT template_id) SELECT COUNT(DISTINCT template_id)
FROM t_dynamic_rule FROM t_task
</select> </select>
<select id="queryAuditTemplateTotalNum" resultType="java.lang.Integer"> <select id="queryAuditTemplateTotalNum" resultType="java.lang.Integer">
SELECT COUNT(*) SELECT COUNT(*)

View File

@@ -47,54 +47,62 @@ public class AlertMessageTest {
@Test @Test
void testReceiveAlertMessage() throws DorisStartException { void testReceiveAlertMessage() throws DorisStartException {
for(int n = 10;n < 20;n++) {
List<ProtectObject> protectObject = protectObjectService.queryProtectObjects( List<ProtectObject> protectObject = protectObjectService.queryProtectObjects(
null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null,
null, null, 1, 1); null, null, 1, 1);
List<TemplateNew> templates = templateService.queryTemplates( List<TemplateNew> templates = templateService.queryTemplates(
null, null, null, null, null,null,null,1, 1); null, null, null, null, null, null, null, 1, 1);
DynamicRuleObject object = new DynamicRuleObject(); DynamicRuleObject object = new DynamicRuleObject();
object.setDynamicRuleName("UpdateDynamicRule2"); object.setDynamicRuleName("测试动态任务规则"+n);
object.setDynamicRuleFrequency(1); object.setDescription("动态规则新建测试");
object.setDynamicRulePriority(1); object.setDynamicRuleSourceSystem("BW");
// object.setDynamicRuleRange("北京"); object.setBwSql("select * from test where event_id = 1");
object.setDynamicRuleProtectLevel(1); object.setDynamicRuleCreateDepart("组织树");
object.setLogRuleId(1L); object.setDynamicRuleCreateUserId(1100664);
object.setTemplateId(templates.get(0).getTemplateId()); object.setDynamicRuleCreateUsername("NSADD管理员");
object.setProtectObjectIds(List.of(new Integer[]{protectObject.get(0).getProtectObjectId()}));
Integer dynamicRuleId = dynamicRuleService.newDynamicRuleObject(object); Integer dynamicRuleId = dynamicRuleService.newDynamicRuleObject(object);
dynamicRuleService.updateAuditStatus(object.getDynamicRuleId(), 2,null,null,null); dynamicRuleService.updateAuditStatus(object.getDynamicRuleId(), 2, "NSADD管理员", 1100664, "组织树");
Task task = new Task(); Task task = new Task();
task.setTaskName("生产告警信息测试"); task.setTaskName("生产告警信息测试"+n);
LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1); LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1);
LocalDateTime taskEndTime = LocalDateTime.now().plusYears(5); LocalDateTime taskEndTime = LocalDateTime.now().plusYears(5);
task.setTaskStartTime(taskStartTime); task.setTaskStartTime(taskStartTime);
task.setTaskEndTime(taskEndTime); task.setTaskEndTime(taskEndTime);
task.setTaskAct("阻断"); task.setTaskAct("23");
task.setTaskType(2); task.setTaskType(2);
task.setTaskCreateUserId(1); task.setTaskCreateUserId(1100664);
task.setTaskCreateUsername("xxx"); task.setTaskCreateUsername("NSADD管理员");
task.setTaskCreateDepart("xxx"); task.setTaskCreateDepart("组织树");
task.setTaskRange("北京"); task.setTaskRange("1007");
task.setDynamicRuleIds(List.of(new Integer[]{dynamicRuleId})); task.setDynamicRuleIds(List.of(new Integer[]{dynamicRuleId}));
task.setProtectObjectIds(List.of(new Integer[]{protectObject.get(0).getProtectObjectId()}));
task.setTemplateId(templates.get(0).getTemplateId());
task.setSourceSystem(templates.get(0).getSourceSystem());
task.setEventType(templates.get(0).getEventType());
task.setProtectLevel(Integer.valueOf(templates.get(0).getProtectLevel()));
task.setTemplateName(templates.get(0).getTemplateName());
Long taskId = taskService.newTask(task); Long taskId = taskService.newTask(task);
System.out.println(taskId); System.out.println(taskId);
//审核状态 //审核状态
taskService.changeTaskAuditStatus(taskId, 2); taskService.changeTaskAuditStatus(taskId, 2, "NSADD管理员", "1100664", "组织树");
//启动任务 //启动任务
stateChangeService.changeState(2, taskId, false); stateChangeService.changeState(2, taskId, false);
for (int i = 0 ; i< 5; i++) { for (int i = 0; i < 5; i++) {
AlertMessage alert = new AlertMessage(); AlertMessage alert = new AlertMessage();
FiveTupleWithMask fiveTupleWithMask = new FiveTupleWithMask(); FiveTupleWithMask fiveTupleWithMask = new FiveTupleWithMask();
fiveTupleWithMask.setSourceIP("111.1.1." + i); fiveTupleWithMask.setSourceIP(n+".1.1." + i);
fiveTupleWithMask.setDestinationIP("222.22.2." + i); fiveTupleWithMask.setDestinationIP(n+".22.2." + i);
fiveTupleWithMask.setSourcePort("111"); fiveTupleWithMask.setSourcePort("111");
fiveTupleWithMask.setDestinationPort("222"); fiveTupleWithMask.setDestinationPort("80");
fiveTupleWithMask.setProtocol("tcp"); fiveTupleWithMask.setProtocol("6");
alert.setDynamicRuleId(dynamicRuleId); alert.setDynamicRuleId(dynamicRuleId);
alert.setTaskId(taskId); alert.setTaskId(taskId);
@@ -104,7 +112,7 @@ public class AlertMessageTest {
alertMessageService.processAlertMessage(alert); alertMessageService.processAlertMessage(alert);
} }
}
} }

View File

@@ -37,23 +37,23 @@ public class DynamicRuleServiceTest extends ProtectionApplicationTests {
@Test @Test
void testNewDynamicRule() { void testNewDynamicRule() {
List<ProtectObject> protectObject = protectObjectService.queryProtectObjects( // List<ProtectObject> protectObject = protectObjectService.queryProtectObjects(
null, null, null,null, // null, null, null,null,
null,null,null,null, // null,null,null,null,
null,null, 1, 1); // null,null, 1, 1);
List<Template> templates = templateService.queryTemplates( // List<Template> templates = templateService.queryTemplates(
null, null, null, null, null,1, 1); // null, null, null, null, null,1, 1);
for (int i = 0;i<30; i++) {
DynamicRuleObject object = new DynamicRuleObject(); DynamicRuleObject object = new DynamicRuleObject();
object.setDynamicRuleName("UpdateDynamicRule2"); object.setDynamicRuleName("动态规则"+i);
object.setDynamicRuleFrequency(1); object.setDescription("动态规则新建测试");
object.setDynamicRulePriority(1); object.setDynamicRuleSourceSystem("BW");
// object.setDynamicRuleRange("北京"); object.setBwSql("select * from test where event_id = "+i);
object.setDynamicRuleProtectLevel(2); object.setDynamicRuleCreateDepart("组织树");
object.setTemplateId(templates.get(0).getTemplateId()); object.setDynamicRuleCreateUserId(1100664);
object.setLogRuleId(1L); object.setDynamicRuleCreateUsername("NSADD管理员");
object.setProtectObjectIds(List.of(new Integer[]{protectObject.get(0).getProtectObjectId()})); dynamicRuleService.newDynamicRuleObject(object);
Integer dynamicRuleId = dynamicRuleService.newDynamicRuleObject(object); }
} }
@Test @Test
@@ -78,9 +78,9 @@ public class DynamicRuleServiceTest extends ProtectionApplicationTests {
object.setDynamicRuleFrequency(1); object.setDynamicRuleFrequency(1);
object.setDynamicRulePriority(1); object.setDynamicRulePriority(1);
// object.setDynamicRuleRange("北京"); // object.setDynamicRuleRange("北京");
object.setDynamicRuleProtectLevel(2); // object.setDynamicRuleProtectLevel(2);
object.setTemplateId(templates.get(0).getTemplateId()); // object.setTemplateId(templates.get(0).getTemplateId());
object.setProtectObjectIds(List.of(new Integer[]{protectObject.get(0).getProtectObjectId()})); // object.setProtectObjectIds(List.of(new Integer[]{protectObject.get(0).getProtectObjectId()}));
Integer dynamicRuleId = dynamicRuleService.newDynamicRuleObject(object); Integer dynamicRuleId = dynamicRuleService.newDynamicRuleObject(object);
dynamicRuleService.updateAuditStatus(dynamicRuleId, 2,null,null,null); dynamicRuleService.updateAuditStatus(dynamicRuleId, 2,null,null,null);
@@ -107,31 +107,34 @@ public class DynamicRuleServiceTest extends ProtectionApplicationTests {
@Test @Test
void testQueryDynamicRule() { void testQueryDynamicRule() {
// DynamicRuleObject object = dynamicRuleService.queryDynamicRuleById(9); DynamicRuleObject object = dynamicRuleService.queryDynamicRuleById(166);
// System.out.println(object); System.out.println(object);
} }
@Test @Test
void testUpdateDynamicRule() { void testUpdateDynamicRule() {
/*
DynamicRuleObject object = new DynamicRuleObject(); DynamicRuleObject object = new DynamicRuleObject();
object.setDynamicRuleName("UpdateDynamicRule2"); object.setDynamicRuleName("UpdateDynamicRule2");
object.setDynamicRuleFrequency(1); // object.setDynamicRuleFrequency(1);
object.setDynamicRulePriority(1); // object.setDynamicRulePriority(1);
// object.setDynamicRuleRange("北京"); //// object.setDynamicRuleRange("北京");
object.setDynamicRuleProtectLevel(2); // object.setDynamicRuleProtectLevel(2);
object.setTemplateId(1); // object.setTemplateId(1);
object.setProtectObjectIds(List.of(new Integer[]{6061})); // object.setProtectObjectIds(List.of(new Integer[]{6061}));
dynamicRuleService.updateDynamicRuleObject(166, object);
dynamicRuleService.updateDynamicRuleObject(5, object);
*/
} }
@Test @Test
void testQueryDynamicRuleObject() { void testQueryDynamicRuleObject() {
List<DynamicRuleObject> objects = dynamicRuleService.queryDynamicRuleObject( List<DynamicRuleObject> objects = dynamicRuleService.queryDynamicRuleObject(
null,null,null, null,2,null,null,null,null,null,1, 10); null,null,null, null,2,null,null,null,null,null,1, 10);
System.out.println(objects); objects.forEach(object-> System.out.println(object));
Integer num = dynamicRuleService.queryDynamicRuleTotalNum(
null,null,null,null,null,null,null,null,null,null);
System.out.println(num);
} }
@Test @Test
void testQueryDynamicRuleTotalNum(){ void testQueryDynamicRuleTotalNum(){
@@ -144,11 +147,14 @@ public class DynamicRuleServiceTest extends ProtectionApplicationTests {
void testUpdateDynamicRuleAuditStatusBatch(){ void testUpdateDynamicRuleAuditStatusBatch(){
Map<Integer, Integer> map = new HashMap<>(); Map<Integer, Integer> map = new HashMap<>();
// map.put(101, 1); // map.put(101, 1);
map.put(110, 2); // map.put(110, 2);
map.put(112, 2); // map.put(112, 2);
for(int i = 167; i < 197; i++){
map.put(i, 2);
}
// System.out.println(dynamicRuleMapper.queryAuditStatusByIds(map)); // System.out.println(dynamicRuleMapper.queryAuditStatusByIds(map));
System.out.println(dynamicRuleService.queryAuditStatusByIds(map)); System.out.println(dynamicRuleService.updateAuditStatusBatch(map, "NSADD管理员", "1100664", "组织树"));
} }

View File

@@ -38,15 +38,27 @@ public class StaticRuleServiceTest extends ProtectionApplicationTests {
// staticRuleTest.setStaticRuleMdip("255.255.255.0"); // staticRuleTest.setStaticRuleMdip("255.255.255.0");
// staticRuleTest.setStaticRuleSport(11); // staticRuleTest.setStaticRuleSport(11);
staticRuleTest.setStaticRulePriority(1); // staticRuleTest.setStaticRulePriority(1);
staticRuleTest.setStaticRuleFrequency(1); // staticRuleTest.setStaticRuleFrequency(1);
// staticRuleTest.setStaticRuleRange("北京"); // staticRuleTest.setStaticRuleRange("北京");
} }
@Test @Test
void testNewStaticRule(){ void testNewStaticRule(){
for (int i = 1; i < 10; i++) {
staticRuleTest = new StaticRuleObject();
staticRuleTest.setStaticRuleName("test_staticrule"+i);
staticRuleTest.setStaticRuleCreateUsername("NSADD管理员");
staticRuleTest.setStaticRuleCreateDepart("组织树");
staticRuleTest.setStaticRuleCreateUserId(22222222);
staticRuleTest.setAuditStatus(0);
staticRuleTest.setStaticRuleSip("32.2.3."+i);
staticRuleTest.setStaticRuleDip(i+".2.3.2");
staticRuleService.newStaticRuleObject(staticRuleTest); staticRuleService.newStaticRuleObject(staticRuleTest);
}
//assertTrue(id>0); //assertTrue(id>0);
} }
@Test @Test

View File

@@ -2,7 +2,6 @@ package com.realtime.protection.server.task;
import com.realtime.protection.ProtectionApplicationTests; import com.realtime.protection.ProtectionApplicationTests;
import com.realtime.protection.configuration.entity.defense.object.ProtectObject; import com.realtime.protection.configuration.entity.defense.object.ProtectObject;
import com.realtime.protection.configuration.entity.defense.template.Template;
import com.realtime.protection.configuration.entity.defense.template.TemplateNew; import com.realtime.protection.configuration.entity.defense.template.TemplateNew;
import com.realtime.protection.configuration.entity.rule.dynamicrule.DynamicRuleObject; import com.realtime.protection.configuration.entity.rule.dynamicrule.DynamicRuleObject;
import com.realtime.protection.configuration.entity.rule.staticrule.StaticRuleObject; import com.realtime.protection.configuration.entity.rule.staticrule.StaticRuleObject;
@@ -21,6 +20,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.dao.DataIntegrityViolationException; import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
@@ -108,7 +108,7 @@ class TaskServiceTest extends ProtectionApplicationTests {
@Test @Test
void testPageQueryTask(){ void testPageQueryTask(){
List<Task> tasks = taskService.queryTasks(null, null, "", "", null,"", null, "", "", null,null,null,1, 10); List<Task> tasks = taskService.queryTasks(null, null, "", "", null,"", null, "", "", null,null,null,null,1, 10);
// System.out.println(tasks); // System.out.println(tasks);
tasks.forEach(task -> System.out.println(task)); tasks.forEach(task -> System.out.println(task));
} }
@@ -121,7 +121,7 @@ class TaskServiceTest extends ProtectionApplicationTests {
// for (int i = 0; i < 10; i++) { // for (int i = 0; i < 10; i++) {
// task.setTaskName(testName); // task.setTaskName(testName);
// task.setTaskCreateUsername(testCreateName); // task.setTaskCreateUsername(testCreateName);
// List<StaticRuleObject> staticRuleObjects = staticRuleService.queryStaticRule( // List<StaticRuleObject> staticRuleObjects = s taticRuleService.queryStaticRule(
// null, null, null, null, null,null, null, null,1, 5); // null, null, null, null, null,null, null, null,1, 5);
// List<Integer> staticRuleIds = new ArrayList<>(); // List<Integer> staticRuleIds = new ArrayList<>();
// staticRuleObjects.forEach(staticRuleObject -> // staticRuleObjects.forEach(staticRuleObject ->
@@ -144,8 +144,8 @@ class TaskServiceTest extends ProtectionApplicationTests {
// } // }
// //
// //
// List<Task> tasks = taskService.queryTasks(null, null, null, null, null, null, null, null, null,1, 10); List<Task> tasks = taskService.queryTasks(null, null, null, null, null, null, null, null, null,null,null,null,null,1, 10);
// assertEquals(10, tasks.size()); assertEquals(10, tasks.size());
// //
// tasks = taskService.queryTasks(0, null, null, null, null,null, null, null, null, 1, 10); // tasks = taskService.queryTasks(0, null, null, null, null,null, null, null, null, 1, 10);
// assertEquals(10, tasks.size()); // assertEquals(10, tasks.size());
@@ -162,7 +162,7 @@ class TaskServiceTest extends ProtectionApplicationTests {
@Test @Test
void testUpdateTasks() { void testUpdateTasks() {
Task originalTask = taskService.queryTasks( Task originalTask = taskService.queryTasks(
null, null, null, null, null, null, null, null, null,null,null,null,1, 1) null, null, null, null, null, null, null, null, null,null,null,null,null,1, 1)
.get(0); .get(0);
List<StaticRuleObject> staticRuleObjects = staticRuleService.queryStaticRule( List<StaticRuleObject> staticRuleObjects = staticRuleService.queryStaticRule(
@@ -179,7 +179,7 @@ class TaskServiceTest extends ProtectionApplicationTests {
@Test @Test
void testDeleteTask() { void testDeleteTask() {
long testNum = taskService.queryTasks(null, null, null, null, null, null, null, null, null,null,null,null,1, 10) long testNum = taskService.queryTasks(null, null, null, null, null, null, null, null, null,null,null,null,null,1, 10)
.get(0).getTaskId(); .get(0).getTaskId();
assertTrue(taskService.deleteTask(testNum)); assertTrue(taskService.deleteTask(testNum));
@@ -226,50 +226,53 @@ class TaskServiceTest extends ProtectionApplicationTests {
} }
@Transactional
@Test @Test
void testStartStaticTask() throws DorisStartException { void testStartStaticTask() throws DorisStartException {
for (int n = 10; n < 20; n++) {
List<Integer> staticRuleIds = new ArrayList<>();
for (int i = 10; i < 15; i++) {
StaticRuleObject staticRuleTest = new StaticRuleObject(); StaticRuleObject staticRuleTest = new StaticRuleObject();
staticRuleTest.setStaticRuleName("mh-静态测试"); staticRuleTest.setStaticRuleName(n+"test_staticrule" + i);
staticRuleTest.setStaticRuleCreateUsername("mh"); staticRuleTest.setStaticRuleCreateUsername("NSADD管理员");
staticRuleTest.setStaticRuleCreateDepart("mmeess"); staticRuleTest.setStaticRuleCreateDepart("组织树");
staticRuleTest.setStaticRuleCreateUserId(2); staticRuleTest.setStaticRuleCreateUserId(22222222);
staticRuleTest.setAuditStatus(0); staticRuleTest.setAuditStatus(0);
staticRuleTest.setStaticRuleSip("1.1.2.0"); staticRuleTest.setStaticRuleSip("32.2.3." + i);
// staticRuleTest.setStaticRuleMsip("255.255.255.0"); staticRuleTest.setStaticRuleDip(n + ".2.3.2");
staticRuleService.newStaticRuleObject(staticRuleTest);
staticRuleIds.add(staticRuleTest.getStaticRuleId());
staticRuleService.updateAuditStatus(staticRuleTest.getStaticRuleId(), 2, "xxx管理员", 1111111, "组织树");
// staticRuleTest.setStaticRuleDip("1.1.1.2"); }
// staticRuleTest.setStaticRuleMdip("255.255.255.0");
// staticRuleTest.setStaticRuleSport(80);
staticRuleTest.setStaticRulePriority(1);
staticRuleTest.setStaticRuleFrequency(1);
// staticRuleTest.setStaticRuleRange("北京");
Integer staticRuleId = staticRuleService.newStaticRuleObject(staticRuleTest);
Task task = new Task(); Task task = new Task();
task.setTaskName("mh-task测试3"); task.setTaskName("静态task测试"+n);
LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1); LocalDateTime taskStartTime = LocalDateTime.now().plusMinutes(1);
LocalDateTime taskEndTime = LocalDateTime.now().plusYears(5); LocalDateTime taskEndTime = LocalDateTime.now().plusYears(5);
task.setTaskStartTime(taskStartTime); task.setTaskStartTime(taskStartTime);
task.setTaskEndTime(taskEndTime); task.setTaskEndTime(taskEndTime);
task.setTaskAct("阻断"); task.setTaskAct("23");
task.setTaskType(1); task.setTaskType(1);
task.setTaskRange("1009"); task.setTaskRange("1007");
task.setTaskCreateUserId(1); task.setTaskCreateUserId(111111);
task.setTaskCreateUsername("xxx"); task.setTaskCreateUsername("xxx管理员");
task.setTaskCreateDepart("xxx"); task.setTaskCreateDepart("xxx");
List<Integer> staticRuleIds = new ArrayList<>();
staticRuleIds.add(staticRuleId);
staticRuleService.updateAuditStatus(staticRuleId, 2,null,null,null);
task.setStaticRuleIds(staticRuleIds); task.setStaticRuleIds(staticRuleIds);
List<ProtectObject> protectObject = protectObjectService.queryProtectObjects(
null, null, null, null,
null, null, null, null,
null, null, 1, 1);
Long taskId = taskService.newTask(task); Long taskId = taskService.newTask(task);
// //
@@ -277,8 +280,8 @@ class TaskServiceTest extends ProtectionApplicationTests {
stateChangeService.changeState(2, taskId, false); stateChangeService.changeState(2, taskId, false);
System.out.println(commandService.queryCommandInfos(taskId, null, null, null, null, 1, 5)); // System.out.println(commandService.queryCommandInfos(taskId, null, null, null, null, 1, 5));
}
} }
@Test @Test
@@ -303,10 +306,10 @@ class TaskServiceTest extends ProtectionApplicationTests {
object.setDynamicRuleFrequency(1); object.setDynamicRuleFrequency(1);
object.setDynamicRulePriority(1); object.setDynamicRulePriority(1);
// object.setDynamicRuleRange("北京"); // object.setDynamicRuleRange("北京");
object.setDynamicRuleProtectLevel(1); // object.setDynamicRuleProtectLevel(1);
object.setLogRuleId(1L); // object.setLogRuleId(1L);
object.setTemplateId(templates.get(0).getTemplateId()); // object.setTemplateId(templates.get(0).getTemplateId());
object.setProtectObjectIds(List.of(new Integer[]{protectObject.get(0).getProtectObjectId()})); // object.setProtectObjectIds(List.of(new Integer[]{protectObject.get(0).getProtectObjectId()}));
Integer dynamicRuleId = dynamicRuleService.newDynamicRuleObject(object); Integer dynamicRuleId = dynamicRuleService.newDynamicRuleObject(object);
dynamicRuleService.updateAuditStatus(object.getDynamicRuleId(), 2,null,null,null); dynamicRuleService.updateAuditStatus(object.getDynamicRuleId(), 2,null,null,null);
@@ -325,12 +328,19 @@ class TaskServiceTest extends ProtectionApplicationTests {
task.setTaskCreateUsername("xxx"); task.setTaskCreateUsername("xxx");
task.setTaskCreateDepart("xxx"); task.setTaskCreateDepart("xxx");
task.setDynamicRuleIds(List.of(new Integer[]{dynamicRuleId})); task.setDynamicRuleIds(List.of(new Integer[]{dynamicRuleId}));
task.setEventType("ddos");
task.setProtectLevel(1);
task.setTemplateName(templates.get(0).getTemplateName());
task.setSourceSystem("bw");
task.setTemplateId(templates.get(0).getTemplateId());
task.setProtectObjectIds(List.of(new Integer[]{protectObject.get(0).getProtectObjectId()}));
Long taskId = taskService.newTask(task); Long taskId = taskService.newTask(task);
System.out.println(taskId); System.out.println(taskId);
//审核状态 //审核状态
taskService.changeTaskAuditStatus(taskId, 2); // taskService.changeTaskAuditStatus(taskId, 2);
//启动任务 //启动任务
stateChangeService.changeState(2, taskId, false); // stateChangeService.changeState(2, taskId, false);
// System.out.println(commandService.queryCommandInfos(taskId, null, null, null, null, 1, 5)); // System.out.println(commandService.queryCommandInfos(taskId, null, null, null, null, 1, 5));
} }
@@ -358,6 +368,6 @@ class TaskServiceTest extends ProtectionApplicationTests {
@Test @Test
void testQueryTaskTotalNum(){ void testQueryTaskTotalNum(){
System.out.println(taskService.queryTaskTotalNum(null, null, "", "", null, "", "", "", "")); System.out.println(taskService.queryTaskTotalNum(null, null, "", "", null, "", "", "", "",null,null,null,null));
} }
} }

View File

@@ -36,7 +36,7 @@ class CommandServiceTest extends ProtectionApplicationTests {
@BeforeEach @BeforeEach
void mockCommand() { void mockCommand() {
Task task = taskService.queryTasks(null, null, null, null, null, null, null, null, null,null,null,null,1, 1).get(0); Task task = taskService.queryTasks(null, null, null, null, null, null, null, null, null,null,null,null,null,1, 1).get(0);
FiveTupleWithMask fiveTupleWithMask = new FiveTupleWithMask(); FiveTupleWithMask fiveTupleWithMask = new FiveTupleWithMask();
fiveTupleWithMask.setMaskSourceIP("192.168.155.24"); fiveTupleWithMask.setMaskSourceIP("192.168.155.24");
@@ -66,7 +66,7 @@ class CommandServiceTest extends ProtectionApplicationTests {
@Test @Test
void createCommands() { void createCommands() {
List<TaskCommandInfo> taskCommandInfos = ListUtils.newArrayListWithExpectedSize(100); List<TaskCommandInfo> taskCommandInfos = ListUtils.newArrayListWithExpectedSize(100);
Task task = taskService.queryTasks(null, null, null, null, null, null, null, null, null,null,null,null,1, 1).get(0); Task task = taskService.queryTasks(null, null, null, null, null, null, null, null, null,null,null,null,null,1, 1).get(0);
for (int i = 0; i < 100; i++) { for (int i = 0; i < 100; i++) {
int port = i + 1000; int port = i + 1000;
TaskCommandInfo taskCommandInfo = new TaskCommandInfo(); TaskCommandInfo taskCommandInfo = new TaskCommandInfo();
@@ -92,7 +92,7 @@ class CommandServiceTest extends ProtectionApplicationTests {
@Test @Test
void queryCommandInfos() { void queryCommandInfos() {
Task task = taskService.queryTasks(null, null, null, null, null, null, null, null, null,null,null,null,1, 1).get(0); Task task = taskService.queryTasks(null, null, null, null, null, null, null, null, null,null,null,null,null,1, 1).get(0);
List<TaskCommandInfo> taskCommandInfos = commandService.queryCommandInfos(task.getTaskId(), List<TaskCommandInfo> taskCommandInfos = commandService.queryCommandInfos(task.getTaskId(),
null, null, null, null,1, 5); null, null, null, null,1, 5);
assertTrue(taskCommandInfos != null && !taskCommandInfos.isEmpty()); assertTrue(taskCommandInfos != null && !taskCommandInfos.isEmpty());