diff --git a/src/main/java/com/realtime/protection/configuration/entity/rule/dynamicrule/AlertMessage.java b/src/main/java/com/realtime/protection/configuration/entity/rule/dynamicrule/AlertMessage.java new file mode 100644 index 0000000..9267d03 --- /dev/null +++ b/src/main/java/com/realtime/protection/configuration/entity/rule/dynamicrule/AlertMessage.java @@ -0,0 +1,15 @@ +package com.realtime.protection.configuration.entity.rule.dynamicrule; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.realtime.protection.configuration.entity.task.FiveTupleWithMask; +import lombok.Data; + +@Data +public class AlertMessage { + + @JsonProperty("task_id") + private Long taskId; + @JsonProperty("five_tuple_with_mask") + private FiveTupleWithMask fiveTupleWithMask; + +} diff --git a/src/main/java/com/realtime/protection/configuration/entity/rule/staticrule/StaticRuleObject.java b/src/main/java/com/realtime/protection/configuration/entity/rule/staticrule/StaticRuleObject.java index 02f22f8..e61b1eb 100644 --- a/src/main/java/com/realtime/protection/configuration/entity/rule/staticrule/StaticRuleObject.java +++ b/src/main/java/com/realtime/protection/configuration/entity/rule/staticrule/StaticRuleObject.java @@ -128,7 +128,9 @@ public class StaticRuleObject { @JsonProperty("static_rule_priority") @ExcelProperty("优先级") - @Schema(description = "优先级", example = "1", requiredMode = Schema.RequiredMode.REQUIRED) + @Max(value = 3) + @Min(value = 1) + @Schema(description = "优先级,1代表高2代表中3代表低", example = "1", requiredMode = Schema.RequiredMode.REQUIRED) private Integer staticRulePriority; @JsonProperty("static_rule_range") @ExcelProperty("范围") @@ -136,7 +138,8 @@ public class StaticRuleObject { private String staticRuleRange; @JsonProperty("static_rule_frequency") @ExcelProperty("频率") - @Schema(description = "频率", example = "1", requiredMode = Schema.RequiredMode.REQUIRED) + @Min(value = 1) + @Schema(description = "频率,最低为1", example = "1", requiredMode = Schema.RequiredMode.REQUIRED) private Integer staticRuleFrequency; } diff --git a/src/main/java/com/realtime/protection/server/alertmessage/AlertMessageController.java b/src/main/java/com/realtime/protection/server/alertmessage/AlertMessageController.java new file mode 100644 index 0000000..44e0661 --- /dev/null +++ b/src/main/java/com/realtime/protection/server/alertmessage/AlertMessageController.java @@ -0,0 +1,28 @@ +package com.realtime.protection.server.alertmessage; + +import com.realtime.protection.configuration.entity.rule.dynamicrule.AlertMessage; +import com.realtime.protection.configuration.response.ResponseResult; +import jakarta.validation.Valid; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("alertmessage") +@Slf4j +public class AlertMessageController +{ + private final AlertMessageService alertMessageService; + public AlertMessageController(final AlertMessageService alertMessageService) { + this.alertMessageService = alertMessageService; + } + + @PostMapping("/new") + public ResponseResult receiveAlertMessage(@RequestBody @Valid AlertMessage alertMessage){ + alertMessageService.receiveAlertMessage(alertMessage); + return ResponseResult.ok(); + } + +} diff --git a/src/main/java/com/realtime/protection/server/alertmessage/AlertMessageService.java b/src/main/java/com/realtime/protection/server/alertmessage/AlertMessageService.java new file mode 100644 index 0000000..da8dda1 --- /dev/null +++ b/src/main/java/com/realtime/protection/server/alertmessage/AlertMessageService.java @@ -0,0 +1,38 @@ +package com.realtime.protection.server.alertmessage; + +import com.realtime.protection.configuration.entity.rule.dynamicrule.AlertMessage; +import com.realtime.protection.configuration.entity.task.Task; +import com.realtime.protection.configuration.entity.task.TaskCommandInfo; +import com.realtime.protection.server.task.TaskService; +import org.springframework.stereotype.Service; +import com.realtime.protection.server.command.CommandService; +import com.realtime.protection.configuration.utils.enums.StateEnum; + +@Service +public class AlertMessageService { + private final CommandService commandService; + private final TaskService taskService; + + public AlertMessageService(CommandService commandService,TaskService taskService) { + this.commandService = commandService; + this.taskService = taskService; + } + + public void receiveAlertMessage(AlertMessage alertMessage) { + Long taskId = alertMessage.getTaskId(); + //查task信息 + Task task = taskService.queryTask(taskId); + //检查task status是否为running? +// if (task.getTaskStatus() != StateEnum.RUNNING.getStateNum()) { +// return; +// } + + //task信息和alertMessage中的fiveTuple信息 合并成 TaskCommandInfo + TaskCommandInfo dynamicTaskCommandInfo = new TaskCommandInfo(); + + + //command入库 + //commandService.createCommand(staticTaskCommandInfo); + + } +} diff --git a/src/main/resources/mappers/DynamicRuleMapper.xml b/src/main/resources/mappers/DynamicRuleMapper.xml index 552d0f3..dd7cf66 100644 --- a/src/main/resources/mappers/DynamicRuleMapper.xml +++ b/src/main/resources/mappers/DynamicRuleMapper.xml @@ -15,7 +15,7 @@ dynamic_rule_priority, dynamic_rule_range, dynamic_rule_frequency, dynamic_rule_create_user_id) values (#{object.dynamicRuleName}, - #{object.dynamicRuleCreateTime}, #{object.dynamicRuleModifyTime}, + NOW(), #{object.dynamicRuleModifyTime}, #{object.dynamicRuleCreateUsername}, #{object.dynamicRuleCreateDepart}, #{object.templateId}, #{object.dynamicRuleProtectLevel}, #{object.dynamicRulePriority}, #{object.dynamicRuleRange}, @@ -40,7 +40,7 @@ values (#{object.dynamicRuleName}, - #{object.dynamicRuleCreateTime},#{object.dynamicRuleModifyTime}, + NOW(),#{object.dynamicRuleModifyTime}, #{object.dynamicRuleCreateUsername},#{object.dynamicRuleCreateDepart}, #{object.templateId}, #{object.dynamicRuleProtectLevel}, #{object.dynamicRulePriority}, #{object.dynamicRuleRange}, @@ -96,7 +96,8 @@ dynamic_rule_priority = #{object.dynamicRulePriority}, dynamic_rule_range = #{object.dynamicRuleRange}, - dynamic_rule_frequency = #{object.dynamicRuleFrequency} + dynamic_rule_frequency = #{object.dynamicRuleFrequency}, + modify_time = NOW() where dynamic_rule_id = #{dynamicRuleId} diff --git a/src/main/resources/mappers/StaticRuleMapper.xml b/src/main/resources/mappers/StaticRuleMapper.xml index a70a80b..a5323be 100644 --- a/src/main/resources/mappers/StaticRuleMapper.xml +++ b/src/main/resources/mappers/StaticRuleMapper.xml @@ -35,7 +35,7 @@ static_rule_frequency, static_rule_audit_status) values - (#{object.staticRuleName}, #{object.staticRuleCreateTime}, #{object.staticRuleCreateUsername}, + (#{object.staticRuleName}, NOW(), #{object.staticRuleCreateUsername}, #{object.staticRuleCreateDepart}, #{object.staticRuleCreateUserId}, INET_ATON(#{object.staticRuleSip}), INET_ATON(#{object.staticRuleMsip}), #{object.staticRuleSport}, #{object.staticRuleMsport}, INET_ATON(#{object.staticRuleDip}), INET_ATON(#{object.staticRuleMdip}), #{object.staticRuleDport}, @@ -74,6 +74,7 @@ static_rule_frequency = #{object.staticRuleFrequency}, + static_rule_modify_time = NOW() where static_rule_id = #{id} diff --git a/src/main/resources/mappers/WhiteListMapper.xml b/src/main/resources/mappers/WhiteListMapper.xml index 1294278..9ce8458 100644 --- a/src/main/resources/mappers/WhiteListMapper.xml +++ b/src/main/resources/mappers/WhiteListMapper.xml @@ -8,24 +8,24 @@ insert into t_white_list(white_list_name, white_list_system_name, white_list_ip, white_list_port, white_list_url, white_list_protocol, - white_list_audit_status) + white_list_audit_status, create_time) values (#{object.whiteListName}, #{object.whiteListSystemName}, INET_ATON(#{object.whiteListIP}), #{object.whiteListPort}, #{object.whiteListUrl}, #{object.whiteListProtocol}, - 0) + 0, NOW()) insert into t_white_list(white_list_name, white_list_system_name, white_list_ip, white_list_port, white_list_url, white_list_protocol, - white_list_audit_status) + white_list_audit_status, create_time) values (#{object.whiteListName}, #{object.whiteListSystemName}, INET_ATON(#{object.whiteListIP}), #{object.whiteListPort}, #{object.whiteListUrl}, #{object.whiteListProtocol}, - 0) + 0, NOW()) @@ -92,6 +92,7 @@ white_list_audit_status = #{object.whiteListAuditStatus}, + modify_time = NOW() where white_list_id = #{id} diff --git a/src/test/java/com/realtime/protection/server/rule/dynamic/DynamicRuleServiceTest.java b/src/test/java/com/realtime/protection/server/rule/dynamic/DynamicRuleServiceTest.java index 05855b0..1e6cc7e 100644 --- a/src/test/java/com/realtime/protection/server/rule/dynamic/DynamicRuleServiceTest.java +++ b/src/test/java/com/realtime/protection/server/rule/dynamic/DynamicRuleServiceTest.java @@ -28,11 +28,11 @@ public class DynamicRuleServiceTest extends ProtectionApplicationTests { object.setDynamicRuleRange("北京"); object.setDynamicRuleProtectLevel(2); object.setTemplateId(1); - //object.setProtectObjectIds(List.of(new Integer[]{5521, 5520})); + object.setProtectObjectIds(List.of(new Integer[]{5521, 5520})); - Integer objectId = dynamicRuleService.newDynamicRuleObject(object); - assertTrue(objectId > 0); +// Integer objectId = dynamicRuleService.newDynamicRuleObject(object); +// assertTrue(objectId > 0); } @Test @@ -42,8 +42,8 @@ public class DynamicRuleServiceTest extends ProtectionApplicationTests { @Test void testQueryDynamicRule() { - DynamicRuleObject object = dynamicRuleService.queryDynamicRuleById(9); - System.out.println(object); +// DynamicRuleObject object = dynamicRuleService.queryDynamicRuleById(9); +// System.out.println(object); } @Test @@ -55,9 +55,9 @@ public class DynamicRuleServiceTest extends ProtectionApplicationTests { object.setDynamicRuleRange("北京"); object.setDynamicRuleProtectLevel(2); object.setTemplateId(1); - object.setProtectObjectIds(List.of(new Integer[]{5521, 5520})); + object.setProtectObjectIds(List.of(new Integer[]{6061})); - dynamicRuleService.updateDynamicRuleObject(2, object); + dynamicRuleService.updateDynamicRuleObject(5, object); } @Test diff --git a/src/test/java/com/realtime/protection/server/rule/staticrule/StaticRuleServiceTest.java b/src/test/java/com/realtime/protection/server/rule/staticrule/StaticRuleServiceTest.java index 50ee984..071c1d0 100644 --- a/src/test/java/com/realtime/protection/server/rule/staticrule/StaticRuleServiceTest.java +++ b/src/test/java/com/realtime/protection/server/rule/staticrule/StaticRuleServiceTest.java @@ -44,7 +44,7 @@ public class StaticRuleServiceTest extends ProtectionApplicationTests { @Test void testNewStaticRule(){ Integer i = 0; - while(i<20) { + while(i<2) { i++; StaticRuleObject object = new StaticRuleObject(); @@ -67,7 +67,7 @@ public class StaticRuleServiceTest extends ProtectionApplicationTests { @Test void testNewStaticRules(){ List staticRuleObjects = new ArrayList<>(); - for (int i = 0; i < 100; i++) { + for (int i = 0; i < 2; i++) { staticRuleObjects.add(staticRuleTest); } Boolean success = staticRuleService.newStaticRuleObjects(staticRuleObjects); diff --git a/src/test/java/com/realtime/protection/server/whitelist/WhiteListServiceTest.java b/src/test/java/com/realtime/protection/server/whitelist/WhiteListServiceTest.java index 607e1e5..6746e74 100644 --- a/src/test/java/com/realtime/protection/server/whitelist/WhiteListServiceTest.java +++ b/src/test/java/com/realtime/protection/server/whitelist/WhiteListServiceTest.java @@ -48,7 +48,7 @@ class WhiteListServiceTest extends ProtectionApplicationTests { @Test void newProtectObjects() { List whiteListObjects = new ArrayList<>(); - for (int i = 0; i < 1000; i++) { + for (int i = 0; i < 2; i++) { whiteListObjects.add(whiteListObject); } Boolean success = whiteListService.newWhiteListObjects(whiteListObjects); @@ -73,7 +73,7 @@ class WhiteListServiceTest extends ProtectionApplicationTests { @Test void testUpdateWhiteListAuditStatus() { - whiteListService.updateWhiteListObjectAuditStatus(7, 1); + //whiteListService.updateWhiteListObjectAuditStatus(7, 1); } @Test