1. 更新防护对象和模板的查询,添加更多筛选条件

This commit is contained in:
EnderByEndera
2024-02-01 09:08:45 +08:00
parent 9724ba0abd
commit 8864c2be3e
11 changed files with 89 additions and 81 deletions

View File

@@ -1,8 +1,8 @@
package com.realtime.protection.server.alertmessage;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.realtime.protection.configuration.entity.defense.template.ProtectLevel;
import com.realtime.protection.configuration.entity.alert.AlertMessage;
import com.realtime.protection.configuration.entity.defense.template.ProtectLevel;
import com.realtime.protection.configuration.entity.task.TaskCommandInfo;
import org.apache.ibatis.annotations.Mapper;

View File

@@ -1,8 +1,8 @@
package com.realtime.protection.server.alertmessage;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.realtime.protection.configuration.entity.defense.template.ProtectLevel;
import com.realtime.protection.configuration.entity.alert.AlertMessage;
import com.realtime.protection.configuration.entity.defense.template.ProtectLevel;
import com.realtime.protection.configuration.entity.task.FiveTupleWithMask;
import com.realtime.protection.configuration.entity.task.TaskCommandInfo;
import com.realtime.protection.configuration.utils.enums.StateEnum;

View File

@@ -11,7 +11,10 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
@@ -32,15 +35,16 @@ public interface StaticRuleControllerApi {
implementation = ResponseResult.class),
examples = @ExampleObject(
name = "新增静态规则",
value = "{\n" +
" \"code\": 200,\n" +
" \"message\": \"request succeed\",\n" +
" \"data\": {\n" +
" \"static_rule_id\": 1095,\n" +
" \"static_rule_name\": \"静态规则测试\"\n" +
" }\n" +
"}",
description = "static_rule_id:新增静态规则名称"+
value = """
{
"code": 200,
"message": "request succeed",
"data": {
"static_rule_id": 1095,
"static_rule_name": "静态规则测试"
}
}""",
description = "static_rule_id:新增静态规则名称" +
"static_rule_name:新增静态规则id"
)
)
@@ -49,7 +53,7 @@ public interface StaticRuleControllerApi {
requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(
description = "静态规则信息")
)
ResponseResult newStaticRuleObject(@RequestBody @Valid StaticRuleObject object) ;
ResponseResult newStaticRuleObject(@RequestBody @Valid StaticRuleObject object);
@Operation(
summary = "批量导入静态规则",
@@ -66,7 +70,7 @@ public interface StaticRuleControllerApi {
requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(
description = "Excel文件")
)
ResponseResult uploadFile(@NotNull(message = "uploadFile字段不能为空")MultipartFile uploadFile) throws IOException;
ResponseResult uploadFile(@NotNull(message = "uploadFile字段不能为空") MultipartFile uploadFile) throws IOException;
@Operation(
summary = "下载静态规则模板",
@@ -81,7 +85,7 @@ public interface StaticRuleControllerApi {
)
}
)
void downloadTemplate(HttpServletResponse response) throws IOException ;
void downloadTemplate(HttpServletResponse response) throws IOException;
@Operation(
summary = "删除静态规则",
@@ -94,17 +98,18 @@ public interface StaticRuleControllerApi {
schema = @Schema(implementation = ResponseResult.class),
examples = @ExampleObject(
name = "删除多个静态规则",
value = "{\n" +
" \"code\": 200,\n" +
" \"message\": \"request succeed\",\n" +
" \"data\": {\n" +
" \"success\": true,\n" +
" \"static_rule_id\": [\n" +
" 11\n" +
" ]\n" +
" }\n" +
"}",
description = "static_rule_id:删除静态规则id列表"+
value = """
{
"code": 200,
"message": "request succeed",
"data": {
"success": true,
"static_rule_id": [
11
]
}
}""",
description = "static_rule_id:删除静态规则id列表" +
"success:是否成功"
)
@@ -115,7 +120,7 @@ public interface StaticRuleControllerApi {
@Parameter(name = "ids", description = "静态规则id数组")
}
)
ResponseResult delete(@PathVariable List<Integer> ids) ;
ResponseResult delete(@PathVariable List<Integer> ids);
@Operation(
summary = "修改静态规则",
@@ -128,11 +133,12 @@ public interface StaticRuleControllerApi {
schema = @Schema(implementation = ResponseResult.class),
examples = @ExampleObject(
name = "修改静态规则",
value = "{\n" +
" \"code\": 200,\n" +
" \"message\": \"request succeed\",\n" +
" \"data\": {\"success\": true,}\n" +
"}"
value = """
{
"code": 200,
"message": "request succeed",
"data": {"success": true,}
}"""
)
)
@@ -145,7 +151,7 @@ public interface StaticRuleControllerApi {
description = "静态规则信息")
)
ResponseResult updateStaticRule(@PathVariable Integer id,
@RequestBody @Valid StaticRuleObject object) ;
@RequestBody @Valid StaticRuleObject object);
@Operation(
summary = "查询单个静态规则",
@@ -162,7 +168,7 @@ public interface StaticRuleControllerApi {
},
parameters = {@Parameter(name = "id", description = "静态规则ID", example = "38")}
)
ResponseResult queryStaticRuleById(@PathVariable Integer id) ;
ResponseResult queryStaticRuleById(@PathVariable Integer id);
@Operation(
summary = "分页查询静态规则",
@@ -177,17 +183,18 @@ public interface StaticRuleControllerApi {
anyOf = {ResponseResult.class, StaticRuleObject.class}),
examples = @ExampleObject(
name = "分页查询静态规则",
value = "{\n" +
" \"code\": 200,\n" +
" \"message\": \"request succeed\",\n" +
" \"data\": {\n" +
" \"static_rule_list\": [\n" +
" ],\n" +
" \"static_rule_total_num\": 1080\n" +
" }\n" +
"}",
value = """
{
"code": 200,
"message": "request succeed",
"data": {
"static_rule_list": [
],
"static_rule_total_num": 1080
}
}""",
description = "static_rule_list:静态规则列表"+
description = "static_rule_list:静态规则列表" +
"static_rule_total_num:静态规则总数"
)
)
@@ -211,7 +218,7 @@ public interface StaticRuleControllerApi {
);
@Operation( summary = "批量查询静态规则",
@Operation(summary = "批量查询静态规则",
description = "根据静态规则ID列表查询多个静态规则的所有详细信息",
responses = {
@io.swagger.v3.oas.annotations.responses.ApiResponse(
@@ -239,11 +246,12 @@ public interface StaticRuleControllerApi {
mediaType = "application/json",
schema = @Schema(implementation = ResponseResult.class),
examples = @ExampleObject(
value = "{\n" +
" \"code\": 200,\n" +
" \"message\": \"request succeed\",\n" +
" \"data\": {}\n" +
"}"
value = """
{
"code": 200,
"message": "request succeed",
"data": {}
}"""
)
)
)
@@ -252,10 +260,7 @@ public interface StaticRuleControllerApi {
@Parameter(name = "id", description = "静态规则id")
}
)
ResponseResult deleteStaticRule(@PathVariable Integer id) ;
ResponseResult deleteStaticRule(@PathVariable Integer id);
@Operation(
@@ -275,6 +280,5 @@ public interface StaticRuleControllerApi {
@Parameter(name = "auditStatus", description = "要修改为的静态规则审核状态")
}
)
public ResponseResult updateStaticRuleAuditStatus(@PathVariable Integer id, @PathVariable Integer auditStatus) ;
}
ResponseResult updateStaticRuleAuditStatus(@PathVariable Integer id, @PathVariable Integer auditStatus);
}

View File

@@ -9,7 +9,6 @@ import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@@ -31,15 +30,16 @@ public interface WhiteListControllerApi {
mediaType = "application/json",
schema = @Schema(implementation = ResponseResult.class),
examples = {@ExampleObject(
value = "{\n" +
" \"code\": 200,\n" +
" \"message\": \"request succeed\",\n" +
" \"data\": {\n" +
" \"whiteobj_name\": \"白名单测试\",\n" +
" \"success\": true,\n" +
" \"whiteobj_id\": 7026\n" +
" }\n" +
"}"
value = """
{
"code": 200,
"message": "request succeed",
"data": {
"whiteobj_name": "白名单测试",
"success": true,
"whiteobj_id": 7026
}
}"""
)}
)
)

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="1361px" height="609px" viewBox="0 0 1361 609" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="1361px" height="609px" viewBox="0 0 1361 609" version="1.1" xmlns="http://www.w3.org/2000/svg">
<!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
<title>Group 21</title>
<desc>Created with Sketch.</desc>

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#1890FF;}

Before

Width:  |  Height:  |  Size: 988 B

After

Width:  |  Height:  |  Size: 948 B

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}

Before

Width:  |  Height:  |  Size: 972 B

After

Width:  |  Height:  |  Size: 932 B

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg">
<!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
<title>Vue</title>
<desc>Created with Sketch.</desc>

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -39,8 +39,12 @@ public class AlertMessageTest {
@Test
void testReceiveAlertMessage() {
List<ProtectObject> protectObject = protectObjectService.queryProtectObjects(null, null, 1, 1);
List<Template> templates = templateService.queryTemplates(null, 1, 1);
List<ProtectObject> protectObject = protectObjectService.queryProtectObjects(
null, null, null, null,
null, null, null, null,
null, null, 1, 1);
List<Template> templates = templateService.queryTemplates(
null, null, null,1, 1);
DynamicRuleObject object = new DynamicRuleObject();
object.setDynamicRuleName("UpdateDynamicRule2");

View File

@@ -82,7 +82,8 @@ class TemplateServiceTest extends ProtectionApplicationTests {
@Test
void testQueryTemplate() {
List<Template> templates = templateService.queryTemplates("DDOS", 1, 5);
List<Template> templates = templateService.queryTemplates(
"DDOS", null, null,1, 5);
assertEquals(5, templates.size());
for (Template template : templates) {
assertTrue(template.getTemplateId() > 0);
@@ -93,7 +94,8 @@ class TemplateServiceTest extends ProtectionApplicationTests {
@Test
void testUpdateTemplateSuccess() {
List<Template> templates = templateService.queryTemplates("DDOS", 1, 1);
List<Template> templates = templateService.queryTemplates(
"DDOS", null, null, 1, 1);
Template testTemplate = templates.get(0);
testTemplate.setTemplateName("洪泛型DDOS攻击-" + LocalDateTime.now());

View File

@@ -12,10 +12,8 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cglib.core.Local;
import org.springframework.dao.DataIntegrityViolationException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@@ -30,7 +28,7 @@ class TaskServiceTest extends ProtectionApplicationTests {
private Task task;
@Autowired
TaskServiceTest(TaskService taskService, StaticRuleService staticRuleService, DynamicRuleService dynamicRuleService, StateChangeService stateChangeService) {
TaskServiceTest(TaskService taskService, StaticRuleService staticRuleService, DynamicRuleService dynamicRuleService) {
this.taskService = taskService;
this.staticRuleService = staticRuleService;
this.dynamicRuleService = dynamicRuleService;