1. 修复指令协议字段为Null的bug

2. 添加fake动态规则生成代码(python)
This commit is contained in:
EnderByEndera
2024-04-10 15:45:09 +08:00
parent 18a3e1529e
commit b98813791c
8 changed files with 302 additions and 12 deletions

View File

@@ -1,6 +1,7 @@
package com.realtime.protection.configuration.entity.task;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.realtime.protection.configuration.utils.enums.ProtocolEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
@@ -83,4 +84,10 @@ public class FiveTupleWithMask {
this.maskDestinationPort = original.maskDestinationPort;
this.maskProtocol = original.maskProtocol;
}
public void setProtocolNum() {
ProtocolEnum protocol = ProtocolEnum.getProtocolEnumByProtocol(this.protocol);
assert protocol != null;
this.protocolNum = protocol.getNumber();
}
}

View File

@@ -127,7 +127,9 @@ public class TaskCommandInfo {
this.templateId = original.templateId;
this.protectLevel = original.protectLevel;
this.taskStatus = original.taskStatus;
}
public void setProtocolNum() {
this.fiveTupleWithMask.setProtocolNum();
}
}

View File

@@ -1,30 +1,35 @@
package com.realtime.protection.configuration.utils.enums;
import lombok.Getter;
import java.util.HashMap;
import java.util.Map;
@Getter
public enum ProtocolEnum {
TCP(6),
UDP(17);
TCP(6, "TCP"),
UDP(17, "UDP");
private final Integer number;
private static final Map<Integer, ProtocolEnum> map = new HashMap<>();
private final String protocol;
private static final Map<Integer, ProtocolEnum> protocolNumMap = new HashMap<>();
private static final Map<String, ProtocolEnum> protocolMap = new HashMap<>();
static {
for (ProtocolEnum protocol : ProtocolEnum.values()) {
map.put(protocol.getProtocolNumber(), protocol);
protocolNumMap.put(protocol.getNumber(), protocol);
protocolMap.put(protocol.getProtocol(), protocol);
}
}
ProtocolEnum(int protocolNumber) {
ProtocolEnum(int protocolNumber, String protocol) {
this.number = protocolNumber;
}
public Integer getProtocolNumber() {
return this.number;
this.protocol = protocol;
}
public static ProtocolEnum getProtocolEnumByNumber(Integer protocolNum) {
return map.get(protocolNum);
return protocolNumMap.get(protocolNum);
}
public static ProtocolEnum getProtocolEnumByProtocol(String protocol) { return protocolMap.get(protocol); }
}

View File

@@ -108,7 +108,9 @@ public class TaskService {
}
public List<TaskCommandInfo> getStaticCommandInfos(Long taskId) {
return taskMapper.getStaticCommandInfos(taskId);
List<TaskCommandInfo> staticCommandInfos = taskMapper.getStaticCommandInfos(taskId);
staticCommandInfos.forEach(TaskCommandInfo::setProtocolNum);
return staticCommandInfos;
}
public List<DynamicTaskInfo> getDynamicTaskInfos(Long taskId) {