diff --git a/config/application-dispose.properties b/config/application-dispose.properties
index eb8c8652..a74cd142 100644
--- a/config/application-dispose.properties
+++ b/config/application-dispose.properties
@@ -15,25 +15,21 @@ dispose.call-error-retry-times=3
dispose.max-split-page-size=100
# 最小每页数据条数
dispose.min-split-page-size=10
-
# 迪普设备配置
# 发送超时时间(s)
dptech.soap-conn-timeout-second=60
# 接收超时时间(s)
dptech.soap-recv-timeout-second=60
-
# 用户权限配置
# 是否对设备管理进行用户验证
permission.admin-check=true
# 运行管理设备的操作员用户名
permission.admin-users=admin
-
# 认证配置
# 是否对接口访问进行认证
auth.verify-request-token=true
# token访问超时时间
auth.token-timeout-minute=30
-
# 安全配置
#加密类型: 0 不加密
# 1 Base64编码
@@ -43,7 +39,20 @@ crypto.security-protocol-type=0
crypto.aes-key=hkoUV5ZWh0q1jSxMnpjovVn19Qg99HY6DD40
# 3DES秘钥
crypto.des-key=P3mq9iSIvQcvfyfdWR8sAnfAadO
-
+# Kafka 服务器配置
+#重试次数
+kafka.producer.retries=3
+#批量大小
+kafka.producer.batch.size=16384
+#延时
+kafka.producer.linger=1
+#生产端缓冲区大小
+kafka.producer.buffer.memory=33554432
+kafka.producer.servers=172.21.44.189:9092,172.21.44.9:9092,172.21.44.244:9092,172.21.44.236:9092,172.21.44.80:9092
+kafka.dispose.topic=ddos-vip-customer-ck
+#sonar配置信息
+sonar.host.url=http://172.21.48.126:9000
+sonar.login=8a66da73ef5943a8bc6e7daf9afbc25ce495febc
#信任主机配置
# 白名单开关
trust.auth-white-list-check=true
diff --git a/config/application-test.properties b/config/application-test.properties
index bcb11d55..31c51468 100644
--- a/config/application-test.properties
+++ b/config/application-test.properties
@@ -18,7 +18,6 @@ spring.datasource.url=jdbc:mysql://172.21.48.75:3306/ci_dispose_v1?serverTimezon
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=BCcf6Dd7&8
-
# 配置连接池
spring.datasource.schema=classpath:test_db/unit_test.sql
spring.datasource.initialization-mode=always
diff --git a/pom.xml b/pom.xml
index c9e6d0fc..e3ba08a2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,12 +12,12 @@
org.springframework.boot
spring-boot-starter-parent
- 2.3.9.RELEASE
+ 2.3.12.RELEASE
com.dispose
dispose_platform
- 2.0.8.11
+ 2.0.9
dispose_platform
Dispose Platform
@@ -102,7 +102,11 @@
2.4
jdk15
-
+
+ org.springframework.kafka
+ spring-kafka
+ 2.7.2
+
mysql
@@ -349,6 +353,11 @@
+
+ org.sonarsource.scanner.maven
+ sonar-maven-plugin
+ 3.9.0.2155
+
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinDisposeAbilityInfo.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeAbilityInfo.java
similarity index 85%
rename from src/main/java/com/pengxin/dispose/common/PengXinDisposeAbilityInfo.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeAbilityInfo.java
index 1611cd3f..6de30611 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinDisposeAbilityInfo.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeAbilityInfo.java
@@ -1,39 +1,39 @@
-package com.pengxin.dispose.common;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * The type Peng xin dispose ability info.
- *
- * @author
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class PengXinDisposeAbilityInfo {
- /**
- * The Type.
- */
- private Integer type;
-
- /**
- * The Object type.
- */
- private Integer objectType;
-
- /**
- * The Ip type.
- */
- @JsonProperty("IPType")
- private Integer ipType;
-
- /**
- * The Dispose ip.
- */
- private String disposeIp;
-}
+package com.cmhi.dispose.common;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * The type Peng xin dispose ability info.
+ *
+ * @author
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CmhiDisposeAbilityInfo {
+ /**
+ * The Type.
+ */
+ private Integer type;
+
+ /**
+ * The Object type.
+ */
+ private Integer objectType;
+
+ /**
+ * The Ip type.
+ */
+ @JsonProperty("IPType")
+ private Integer ipType;
+
+ /**
+ * The Dispose ip.
+ */
+ private String disposeIp;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinDisposeAbilityRsp.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeAbilityRsp.java
similarity index 75%
rename from src/main/java/com/pengxin/dispose/common/PengXinDisposeAbilityRsp.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeAbilityRsp.java
index 3bff8ced..6926cd17 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinDisposeAbilityRsp.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeAbilityRsp.java
@@ -1,31 +1,31 @@
-package com.pengxin.dispose.common;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-/**
- * The type Peng xin dispose ability rsp.
- *
- * @author
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class PengXinDisposeAbilityRsp extends PengXinBaseResp {
- /**
- * The Device name.
- */
- private String deviceName;
-
- /**
- * The Capacity.
- */
- List capacity;
-}
+package com.cmhi.dispose.common;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * The type Peng xin dispose ability rsp.
+ *
+ * @author
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CmhiDisposeAbilityRsp extends CmhiDisposeBaseResp {
+ /**
+ * The Device name.
+ */
+ private String deviceName;
+
+ /**
+ * The Capacity.
+ */
+ List capacity;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinBaseResp.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeBaseResp.java
similarity index 79%
rename from src/main/java/com/pengxin/dispose/common/PengXinBaseResp.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeBaseResp.java
index cae32ead..9e918dd4 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinBaseResp.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeBaseResp.java
@@ -1,24 +1,24 @@
-package com.pengxin.dispose.common;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * The type Peng xin base resp.
- *
- * @author
- */
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class PengXinBaseResp {
- /**
- * The Status.
- */
- private Integer status;
- /**
- * The Message.
- */
- private String message;
-}
+package com.cmhi.dispose.common;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * The type Peng xin base resp.
+ *
+ * @author
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CmhiDisposeBaseResp {
+ /**
+ * The Status.
+ */
+ private Integer status;
+ /**
+ * The Message.
+ */
+ private String message;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinLoginReq.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeLoginReq.java
similarity index 80%
rename from src/main/java/com/pengxin/dispose/common/PengXinLoginReq.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeLoginReq.java
index d652d701..9324ac4b 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinLoginReq.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeLoginReq.java
@@ -1,26 +1,26 @@
-package com.pengxin.dispose.common;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * The type Peng xin login req.
- *
- * @author
- */
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class PengXinLoginReq {
- /**
- * The User name.
- */
- private String userName;
- /**
- * The Password.
- */
- private String password;
-}
+package com.cmhi.dispose.common;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * The type Peng xin login req.
+ *
+ * @author
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CmhiDisposeLoginReq {
+ /**
+ * The User name.
+ */
+ private String userName;
+ /**
+ * The Password.
+ */
+ private String password;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinLoginRsp.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeLoginRsp.java
similarity index 83%
rename from src/main/java/com/pengxin/dispose/common/PengXinLoginRsp.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeLoginRsp.java
index a7d620df..faefbb0b 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinLoginRsp.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeLoginRsp.java
@@ -1,38 +1,38 @@
-package com.pengxin.dispose.common;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-/**
- * The type Peng xin login rsp.
- *
- * @author
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class PengXinLoginRsp extends PengXinBaseResp {
- /**
- * The User name.
- */
- private String userName;
-
- /**
- * The Token.
- */
- private String token;
-
- /**
- * The Log time.
- */
- private Long logTime;
- /**
- * The Expire time.
- */
- private Long expireTime;
-}
+package com.cmhi.dispose.common;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+/**
+ * The type Peng xin login rsp.
+ *
+ * @author
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CmhiDisposeLoginRsp extends CmhiDisposeBaseResp {
+ /**
+ * The User name.
+ */
+ private String userName;
+
+ /**
+ * The Token.
+ */
+ private String token;
+
+ /**
+ * The Log time.
+ */
+ private Long logTime;
+ /**
+ * The Expire time.
+ */
+ private Long expireTime;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinStartTaskItem.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStartTaskItem.java
similarity index 84%
rename from src/main/java/com/pengxin/dispose/common/PengXinStartTaskItem.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeStartTaskItem.java
index b6804c4c..8bf0c34d 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinStartTaskItem.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStartTaskItem.java
@@ -1,38 +1,38 @@
-package com.pengxin.dispose.common;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * The type Peng xin start task item.
- *
- * @author
- */
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class PengXinStartTaskItem {
- /**
- * The Task req id.
- */
- private String taskReqId;
- /**
- * The Type.
- */
- private Integer type;
- /**
- * The Object type.
- */
- private Integer objectType;
- /**
- * The Dispose object.
- */
- private String disposeObject;
- /**
- * The Dispose time.
- */
- private Long disposeTime;
-}
+package com.cmhi.dispose.common;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * The type Peng xin start task item.
+ *
+ * @author
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CmhiDisposeStartTaskItem {
+ /**
+ * The Task req id.
+ */
+ private String taskReqId;
+ /**
+ * The Type.
+ */
+ private Integer type;
+ /**
+ * The Object type.
+ */
+ private Integer objectType;
+ /**
+ * The Dispose object.
+ */
+ private String disposeObject;
+ /**
+ * The Dispose time.
+ */
+ private Long disposeTime;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinStartTaskReq.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStartTaskReq.java
similarity index 70%
rename from src/main/java/com/pengxin/dispose/common/PengXinStartTaskReq.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeStartTaskReq.java
index 86fc5ee8..2f61bb10 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinStartTaskReq.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStartTaskReq.java
@@ -1,24 +1,24 @@
-package com.pengxin.dispose.common;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-/**
- * The type Peng xin start task req.
- *
- * @author
- */
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class PengXinStartTaskReq {
- /**
- * The Items.
- */
- List items;
-}
+package com.cmhi.dispose.common;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * The type Peng xin start task req.
+ *
+ * @author
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CmhiDisposeStartTaskReq {
+ /**
+ * The Items.
+ */
+ List items;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinStartTaskRsp.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStartTaskRsp.java
similarity index 76%
rename from src/main/java/com/pengxin/dispose/common/PengXinStartTaskRsp.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeStartTaskRsp.java
index 9ace88b6..5a9a9b7f 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinStartTaskRsp.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStartTaskRsp.java
@@ -1,29 +1,29 @@
-package com.pengxin.dispose.common;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-/**
- * The type Peng xin start task rsp.
- *
- * @author
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class PengXinStartTaskRsp {
- /**
- * The Device name.
- */
- private String deviceName;
-
- /**
- * The Items.
- */
- List items;
-}
+package com.cmhi.dispose.common;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * The type Peng xin start task rsp.
+ *
+ * @author
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CmhiDisposeStartTaskRsp {
+ /**
+ * The Device name.
+ */
+ private String deviceName;
+
+ /**
+ * The Items.
+ */
+ List items;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinStartedItem.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStartedItem.java
similarity index 82%
rename from src/main/java/com/pengxin/dispose/common/PengXinStartedItem.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeStartedItem.java
index 35c2a140..e7ecbe80 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinStartedItem.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStartedItem.java
@@ -1,34 +1,34 @@
-package com.pengxin.dispose.common;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-/**
- * The type Peng xin started item.
- *
- * @author
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class PengXinStartedItem extends PengXinBaseResp {
- /**
- * The Task req id.
- */
- private String taskReqId;
-
- /**
- * The Task id.
- */
- private String taskId;
-
- /**
- * The Expire time.
- */
- private Long expireTime;
-}
+package com.cmhi.dispose.common;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+/**
+ * The type Peng xin started item.
+ *
+ * @author
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CmhiDisposeStartedItem extends CmhiDisposeBaseResp {
+ /**
+ * The Task req id.
+ */
+ private String taskReqId;
+
+ /**
+ * The Task id.
+ */
+ private String taskId;
+
+ /**
+ * The Expire time.
+ */
+ private Long expireTime;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinStopTaskReq.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStopTaskReq.java
similarity index 77%
rename from src/main/java/com/pengxin/dispose/common/PengXinStopTaskReq.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeStopTaskReq.java
index 7fe16509..d3586e5e 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinStopTaskReq.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStopTaskReq.java
@@ -1,22 +1,22 @@
-package com.pengxin.dispose.common;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * The type Peng xin stop task req.
- *
- * @author
- */
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class PengXinStopTaskReq {
- /**
- * The Task id.
- */
- private String[] taskId;
-}
+package com.cmhi.dispose.common;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * The type Peng xin stop task req.
+ *
+ * @author
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CmhiDisposeStopTaskReq {
+ /**
+ * The Task id.
+ */
+ private String[] taskId;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinStopTaskRsp.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStopTaskRsp.java
similarity index 76%
rename from src/main/java/com/pengxin/dispose/common/PengXinStopTaskRsp.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeStopTaskRsp.java
index 34999f81..f0580e25 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinStopTaskRsp.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStopTaskRsp.java
@@ -1,28 +1,28 @@
-package com.pengxin.dispose.common;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-/**
- * The type Peng xin stop task rsp.
- *
- * @author
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class PengXinStopTaskRsp {
- /**
- * The Device name.
- */
- private String deviceName;
- /**
- * The Items.
- */
- private List items;
-}
+package com.cmhi.dispose.common;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * The type Peng xin stop task rsp.
+ *
+ * @author
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CmhiDisposeStopTaskRsp {
+ /**
+ * The Device name.
+ */
+ private String deviceName;
+ /**
+ * The Items.
+ */
+ private List items;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinStoppedItem.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStoppedItem.java
similarity index 84%
rename from src/main/java/com/pengxin/dispose/common/PengXinStoppedItem.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeStoppedItem.java
index 422d3c71..dbad9539 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinStoppedItem.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeStoppedItem.java
@@ -1,40 +1,40 @@
-package com.pengxin.dispose.common;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-/**
- * The type Peng xin stopped item.
- *
- * @author
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class PengXinStoppedItem extends PengXinBaseResp {
- /**
- * The Task id.
- */
- private String taskId;
- /**
- * The Type.
- */
- private Integer type;
- /**
- * The Object type.
- */
- private Integer objectType;
- /**
- * The Dispose object.
- */
- private String disposeObject;
- /**
- * The Left time.
- */
- private Long leftTime;
-}
+package com.cmhi.dispose.common;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+/**
+ * The type Peng xin stopped item.
+ *
+ * @author
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CmhiDisposeStoppedItem extends CmhiDisposeBaseResp {
+ /**
+ * The Task id.
+ */
+ private String taskId;
+ /**
+ * The Type.
+ */
+ private Integer type;
+ /**
+ * The Object type.
+ */
+ private Integer objectType;
+ /**
+ * The Dispose object.
+ */
+ private String disposeObject;
+ /**
+ * The Left time.
+ */
+ private Long leftTime;
+}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinTaskStatus.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeTaskStatus.java
similarity index 92%
rename from src/main/java/com/pengxin/dispose/common/PengXinTaskStatus.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeTaskStatus.java
index ac00e250..4041ecf1 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinTaskStatus.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeTaskStatus.java
@@ -1,4 +1,4 @@
-package com.pengxin.dispose.common;
+package com.cmhi.dispose.common;
import com.dispose.common.BaseEnum;
@@ -7,7 +7,7 @@ import com.dispose.common.BaseEnum;
*
* @author
*/
-public enum PengXinTaskStatus implements BaseEnum {
+public enum CmhiDisposeTaskStatus implements BaseEnum {
/**
* The Task starting.
*/
@@ -69,7 +69,7 @@ public enum PengXinTaskStatus implements BaseEnum {
* @param code the code
* @param readme the readme
*/
- PengXinTaskStatus(int code, String readme) {
+ CmhiDisposeTaskStatus(int code, String readme) {
this.code = code;
this.readme = readme;
}
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinTaskStatusItem.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeTaskStatusItem.java
similarity index 89%
rename from src/main/java/com/pengxin/dispose/common/PengXinTaskStatusItem.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeTaskStatusItem.java
index 6ab93c42..b89adad6 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinTaskStatusItem.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeTaskStatusItem.java
@@ -1,4 +1,4 @@
-package com.pengxin.dispose.common;
+package com.cmhi.dispose.common;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
@@ -16,7 +16,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
-public class PengXinTaskStatusItem extends PengXinBaseResp {
+public class CmhiDisposeTaskStatusItem extends CmhiDisposeBaseResp {
/**
* The Task id.
*/
diff --git a/src/main/java/com/pengxin/dispose/common/PengXinTaskStatusRsp.java b/src/main/java/com/cmhi/dispose/common/CmhiDisposeTaskStatusRsp.java
similarity index 78%
rename from src/main/java/com/pengxin/dispose/common/PengXinTaskStatusRsp.java
rename to src/main/java/com/cmhi/dispose/common/CmhiDisposeTaskStatusRsp.java
index ea31c5c6..ff5dc8d4 100644
--- a/src/main/java/com/pengxin/dispose/common/PengXinTaskStatusRsp.java
+++ b/src/main/java/com/cmhi/dispose/common/CmhiDisposeTaskStatusRsp.java
@@ -1,4 +1,4 @@
-package com.pengxin.dispose.common;
+package com.cmhi.dispose.common;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
@@ -16,7 +16,7 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
-public class PengXinTaskStatusRsp {
+public class CmhiDisposeTaskStatusRsp {
/**
* The Device name.
@@ -26,5 +26,5 @@ public class PengXinTaskStatusRsp {
/**
* The Items.
*/
- private List items;
+ private List items;
}
diff --git a/src/main/java/com/pengxin/dispose/protocol/PengXinInterface.java b/src/main/java/com/cmhi/dispose/protocol/CmhiDisposeInterface.java
similarity index 66%
rename from src/main/java/com/pengxin/dispose/protocol/PengXinInterface.java
rename to src/main/java/com/cmhi/dispose/protocol/CmhiDisposeInterface.java
index 9057d121..d33c9e46 100644
--- a/src/main/java/com/pengxin/dispose/protocol/PengXinInterface.java
+++ b/src/main/java/com/cmhi/dispose/protocol/CmhiDisposeInterface.java
@@ -1,20 +1,19 @@
-package com.pengxin.dispose.protocol;
+package com.cmhi.dispose.protocol;
-import com.dispose.common.CommonEnumHandler;
+import com.cmhi.dispose.common.CmhiDisposeAbilityRsp;
+import com.cmhi.dispose.common.CmhiDisposeBaseResp;
+import com.cmhi.dispose.common.CmhiDisposeLoginReq;
+import com.cmhi.dispose.common.CmhiDisposeLoginRsp;
+import com.cmhi.dispose.common.CmhiDisposeStartTaskItem;
+import com.cmhi.dispose.common.CmhiDisposeStartTaskReq;
+import com.cmhi.dispose.common.CmhiDisposeStartTaskRsp;
+import com.cmhi.dispose.common.CmhiDisposeStopTaskReq;
+import com.cmhi.dispose.common.CmhiDisposeStopTaskRsp;
+import com.cmhi.dispose.common.CmhiDisposeTaskStatusRsp;
import com.dispose.common.ErrorCode;
import com.dispose.pojo.dto.protocol.base.BaseProtocolDTO;
import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
import com.dispose.restful.RestfulInterface;
-import com.pengxin.dispose.common.PengXinBaseResp;
-import com.pengxin.dispose.common.PengXinDisposeAbilityRsp;
-import com.pengxin.dispose.common.PengXinLoginReq;
-import com.pengxin.dispose.common.PengXinLoginRsp;
-import com.pengxin.dispose.common.PengXinStartTaskItem;
-import com.pengxin.dispose.common.PengXinStartTaskReq;
-import com.pengxin.dispose.common.PengXinStartTaskRsp;
-import com.pengxin.dispose.common.PengXinStopTaskReq;
-import com.pengxin.dispose.common.PengXinStopTaskRsp;
-import com.pengxin.dispose.common.PengXinTaskStatusRsp;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpServletResponse;
@@ -25,7 +24,7 @@ import java.util.List;
*
* @author
*/
-public class PengXinInterface {
+public class CmhiDisposeInterface {
/**
* The Ver.
*/
@@ -54,11 +53,11 @@ public class PengXinInterface {
* @param password the password
* @return the protocol resp dto
*/
- public ProtocolRespDTO login(String baseUrlPath, String username, String password) {
+ public ProtocolRespDTO login(String baseUrlPath, String username, String password) {
- BaseProtocolDTO reqInfo = new BaseProtocolDTO<>();
+ BaseProtocolDTO reqInfo = new BaseProtocolDTO<>();
- reqInfo.setMsgContent(PengXinLoginReq.builder()
+ reqInfo.setMsgContent(CmhiDisposeLoginReq.builder()
.userName(username)
.password(password)
.build());
@@ -70,7 +69,7 @@ public class PengXinInterface {
return RestfulInterface.baseProRun(baseUrlPath,
null,
reqInfo,
- PengXinLoginRsp.class,
+ CmhiDisposeLoginRsp.class,
RequestMethod.POST);
}
@@ -82,12 +81,12 @@ public class PengXinInterface {
* @return the link status
*/
public ErrorCode getLinkStatus(String baseUrlPath, String token) {
- ProtocolRespDTO rspInfo = RestfulInterface.baseProRun(baseUrlPath,
- token,
- null,
- PengXinBaseResp.class,
- RequestMethod.GET);
- if (rspInfo != null) {
+ ProtocolRespDTO rspInfo = RestfulInterface.baseProRun(baseUrlPath,
+ token,
+ null,
+ CmhiDisposeBaseResp.class,
+ RequestMethod.GET);
+ if (rspInfo != null && rspInfo.getMsgContent() != null) {
if (rspInfo.getCode() == HttpServletResponse.SC_UNAUTHORIZED) {
return ErrorCode.ERR_LOGOUT;
}
@@ -124,10 +123,10 @@ public class PengXinInterface {
* @param items the items
* @return the protocol resp dto
*/
- public ProtocolRespDTO startDisposeTask(String baseUrlPath, String token,
- List items) {
- BaseProtocolDTO reqInfo = new BaseProtocolDTO<>();
- reqInfo.setMsgContent(new PengXinStartTaskReq());
+ public ProtocolRespDTO startDisposeTask(String baseUrlPath, String token,
+ List items) {
+ BaseProtocolDTO reqInfo = new BaseProtocolDTO<>();
+ reqInfo.setMsgContent(new CmhiDisposeStartTaskReq());
reqInfo.getMsgContent().setItems(items);
reqInfo.setCryptoType(this.cryptoType);
@@ -137,7 +136,7 @@ public class PengXinInterface {
return RestfulInterface.baseProRun(baseUrlPath,
token,
reqInfo,
- PengXinStartTaskRsp.class,
+ CmhiDisposeStartTaskRsp.class,
RequestMethod.POST);
}
@@ -149,10 +148,10 @@ public class PengXinInterface {
* @param taskId the task id
* @return the protocol resp dto
*/
- public ProtocolRespDTO stopDisposeTask(String baseUrlPath, String token, String[] taskId) {
- BaseProtocolDTO reqInfo = new BaseProtocolDTO<>();
+ public ProtocolRespDTO stopDisposeTask(String baseUrlPath, String token, String[] taskId) {
+ BaseProtocolDTO reqInfo = new BaseProtocolDTO<>();
- reqInfo.setMsgContent(new PengXinStopTaskReq());
+ reqInfo.setMsgContent(new CmhiDisposeStopTaskReq());
reqInfo.getMsgContent().setTaskId(taskId);
reqInfo.setCryptoType(this.cryptoType);
@@ -162,7 +161,7 @@ public class PengXinInterface {
return RestfulInterface.baseProRun(baseUrlPath,
token,
reqInfo,
- PengXinStopTaskRsp.class,
+ CmhiDisposeStopTaskRsp.class,
RequestMethod.POST);
}
@@ -173,11 +172,11 @@ public class PengXinInterface {
* @param token the token
* @return the device dispose ability
*/
- public ProtocolRespDTO getDeviceDisposeAbility(String baseUrlPath, String token) {
+ public ProtocolRespDTO getDeviceDisposeAbility(String baseUrlPath, String token) {
return RestfulInterface.baseProRun(baseUrlPath,
token,
null,
- PengXinDisposeAbilityRsp.class,
+ CmhiDisposeAbilityRsp.class,
RequestMethod.GET);
}
@@ -189,10 +188,10 @@ public class PengXinInterface {
* @param taskId the task id
* @return the device task status
*/
- public ProtocolRespDTO getDeviceTaskStatus(String baseUrlPath, String token, String[] taskId) {
- BaseProtocolDTO reqInfo = new BaseProtocolDTO<>();
+ public ProtocolRespDTO getDeviceTaskStatus(String baseUrlPath, String token, String[] taskId) {
+ BaseProtocolDTO reqInfo = new BaseProtocolDTO<>();
- reqInfo.setMsgContent(new PengXinStopTaskReq());
+ reqInfo.setMsgContent(new CmhiDisposeStopTaskReq());
reqInfo.getMsgContent().setTaskId(taskId);
reqInfo.setCryptoType(this.cryptoType);
@@ -202,7 +201,7 @@ public class PengXinInterface {
return RestfulInterface.baseProRun(baseUrlPath,
token,
reqInfo,
- PengXinTaskStatusRsp.class,
+ CmhiDisposeTaskStatusRsp.class,
RequestMethod.POST);
}
}
diff --git a/src/main/java/com/dispose/PhoenixBootApplication.java b/src/main/java/com/dispose/PhoenixBootApplication.java
index 4ce40ae7..3a7d0795 100644
--- a/src/main/java/com/dispose/PhoenixBootApplication.java
+++ b/src/main/java/com/dispose/PhoenixBootApplication.java
@@ -5,6 +5,7 @@ import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.scheduling.annotation.EnableAsync;
@@ -16,7 +17,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
*
* @author
*/
-@SpringBootApplication
+@SpringBootApplication(exclude = {KafkaAutoConfiguration.class})
@EnableAsync
@EnableScheduling
@EnableAspectJAutoProxy
diff --git a/src/main/java/com/dispose/ability/impl/PengXinAbilityImpl.java b/src/main/java/com/dispose/ability/impl/CmhiAbilityImpl.java
similarity index 54%
rename from src/main/java/com/dispose/ability/impl/PengXinAbilityImpl.java
rename to src/main/java/com/dispose/ability/impl/CmhiAbilityImpl.java
index 2437a5cc..b0746980 100644
--- a/src/main/java/com/dispose/ability/impl/PengXinAbilityImpl.java
+++ b/src/main/java/com/dispose/ability/impl/CmhiAbilityImpl.java
@@ -1,23 +1,26 @@
package com.dispose.ability.impl;
+import com.cmhi.dispose.common.CmhiDisposeAbilityRsp;
+import com.cmhi.dispose.common.CmhiDisposeLoginRsp;
+import com.cmhi.dispose.common.CmhiDisposeStartTaskItem;
+import com.cmhi.dispose.common.CmhiDisposeStartTaskRsp;
+import com.cmhi.dispose.common.CmhiDisposeStopTaskRsp;
+import com.cmhi.dispose.common.CmhiDisposeTaskStatusRsp;
+import com.cmhi.dispose.protocol.CmhiDisposeInterface;
import com.dispose.ability.DisposeAbility;
-import com.dispose.common.CommonEnumHandler;
import com.dispose.common.DisposeCapacityType;
import com.dispose.common.DisposeConfigValue;
import com.dispose.common.DisposeObjectType;
import com.dispose.common.ErrorCode;
+import com.dispose.common.Helper;
+import com.dispose.common.IpAddrType;
import com.dispose.common.NetflowDirection;
import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
import com.dispose.pojo.entity.ServiceInfo;
import com.dispose.pojo.po.MulReturnType;
import com.dispose.pojo.vo.DeviceFirewareInfo;
-import com.dispose.security.arithmetic.CryptoHelper;
-import com.pengxin.dispose.common.PengXinLoginRsp;
-import com.pengxin.dispose.common.PengXinStartTaskItem;
-import com.pengxin.dispose.common.PengXinStartTaskRsp;
-import com.pengxin.dispose.common.PengXinStopTaskRsp;
-import com.pengxin.dispose.common.PengXinTaskStatusRsp;
-import com.pengxin.dispose.protocol.PengXinInterface;
+import inet.ipaddr.IPAddress;
+import inet.ipaddr.IPAddressString;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
@@ -25,27 +28,28 @@ import lombok.extern.slf4j.Slf4j;
import javax.annotation.Nullable;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
-
/**
* The type Peng xin ability.
- * @author xajhu
+ *
+ * @author
*/
@Slf4j
-public class PengXinAbilityImpl implements DisposeAbility {
- /*
- The Protect ip v 4.
+public class CmhiAbilityImpl implements DisposeAbility {
+ /**
+ * The Protect ip v 4.
*/
- //private final List protectIpV4 = new ArrayList<>();
- /*
- The Protect ip v 6.
+ private final List protectIpV4 = new ArrayList<>();
+ /**
+ * The Protect ip v 6.
*/
- //private final List protectIpV6 = new ArrayList<>();
+ private final List protectIpV6 = new ArrayList<>();
/**
* The Restful interface.
*/
- private final PengXinInterface restfulInterface = new PengXinInterface();
+ private final CmhiDisposeInterface restfulInterface = new CmhiDisposeInterface();
/**
* The Peng xin dispose type.
*/
@@ -124,7 +128,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
public void initDeviceEnv(String urlPath, String username, String password) {
this.urlRootPath = urlPath;
this.username = username;
- this.password = new String(CryptoHelper.base64Decryption(password));
+ this.password = password;
restfulInterface.setParams(1, 0);
upgradeToken();
@@ -147,31 +151,28 @@ public class PengXinAbilityImpl implements DisposeAbility {
@Nullable NetflowDirection nfDirection,
@Nullable Integer attackType,
@Nullable Long duration) {
- List reqItems = new ArrayList<>();
+ List reqItems = new ArrayList<>();
String url = urlRootPath + "dispose_device/task/start";
if (token == null || token.length() == 0) {
- upgradeToken();
return new MulReturnType<>(ErrorCode.ERR_LOGOUT, "");
}
try {
log.info("++++Begging PengXin Start Cleanup Task: {}", disposeObject);
-
- // 集团一键处置线上环境,移除对处置能力检测操作
-// if (capType != DisposeCapacityType.BLACKHOOL) {
-// log.error("----Error PengXin don't support dispose capacity type: {}", capType);
-// return new MulReturnType<>(ErrorCode.ERR_UNSUPPORT, null);
-// }
+ if (capType != DisposeCapacityType.BLACKHOOL) {
+ log.error("----Error PengXin don't support dispose capacity type: {}", capType);
+ return new MulReturnType<>(ErrorCode.ERR_UNSUPPORT, null);
+ }
// 适配处置时间参数, -1为不限制处置时间
if (duration == null || duration < 0) {
duration = -1L;
}
- reqItems.add(PengXinStartTaskItem.builder()
+ reqItems.add(CmhiDisposeStartTaskItem.builder()
.type(getPengXinTaskType(capType))
.disposeObject(disposeObject)
.objectType(getPengXinObjectType(objectType))
@@ -179,22 +180,16 @@ public class PengXinAbilityImpl implements DisposeAbility {
.taskReqId(String.valueOf(taskReqId++))
.build());
- ProtocolRespDTO rspInfo = restfulInterface.startDisposeTask(url, token, reqItems);
+ ProtocolRespDTO rspInfo = restfulInterface.startDisposeTask(url, token, reqItems);
- ErrorCode err = verifyInterfaceResp(rspInfo);
-
- if (err != ErrorCode.ERR_OK) {
- log.error("----Error PengXin start clean {} server return {}", disposeObject, err.getMsg());
- return new MulReturnType<>(err, disposeObject);
+ // 判断是否token过期
+ if (rspInfo != null && reLogin(rspInfo, rspInfo.getMsgContent().getItems().get(0).getStatus())) {
+ rspInfo = restfulInterface.startDisposeTask(url, token, reqItems);
}
- err = verifyRespStatus(rspInfo.getMsgContent().getItems().get(0).getStatus());
-
- if (err != ErrorCode.ERR_OK) {
- log.error("----Error PengXin start clean {} server return {}({})", disposeObject,
- rspInfo.getMsgContent().getItems().get(0).getStatus(),
- rspInfo.getMsgContent().getItems().get(0).getMessage());
- return new MulReturnType<>(err, disposeObject);
+ if (rspInfo == null || rspInfo.getCode() != ErrorCode.ERR_OK.getHttpCode()) {
+ log.error("----Error PengXin start clean {} server return error", disposeObject);
+ return new MulReturnType<>(ErrorCode.ERR_PENGXIN_ERROR, null);
}
if (rspInfo.getMsgContent().getItems().size() == 0) {
@@ -208,7 +203,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
return new MulReturnType<>(ErrorCode.ERR_PENGXIN_ERROR, null);
}
- log.info("----Finish PengXin Start Cleanup Task: {}", disposeObject);
+ log.debug("----Finish PengXin Start Cleanup Task: {}", disposeObject);
return new MulReturnType<>(ErrorCode.ERR_OK, rspInfo.getMsgContent().getItems().get(0).getTaskId());
}
} catch (Exception ex) {
@@ -235,7 +230,6 @@ public class PengXinAbilityImpl implements DisposeAbility {
String url = urlRootPath + "dispose_device/task/stop";
if (token == null || token.length() == 0) {
- upgradeToken();
return new MulReturnType<>(ErrorCode.ERR_LOGOUT, null);
}
@@ -251,21 +245,17 @@ public class PengXinAbilityImpl implements DisposeAbility {
return new MulReturnType<>(ErrorCode.ERR_PARAMS, null);
}
- ProtocolRespDTO rspInfo = restfulInterface.stopDisposeTask(url, token,
- new String[]{taskId});
+ ProtocolRespDTO rspInfo = restfulInterface.stopDisposeTask(url, token,
+ new String[]{taskId});
- ErrorCode err = verifyInterfaceResp(rspInfo);
-
- if (err != ErrorCode.ERR_OK) {
- log.error("----Error PengXin start clean {} server return {}", taskId, err.getMsg());
- return new MulReturnType<>(err, null);
+ // 判断是否token过期
+ if (rspInfo != null && reLogin(rspInfo, rspInfo.getMsgContent().getItems().get(0).getStatus())) {
+ rspInfo = restfulInterface.stopDisposeTask(url, token, new String[]{taskId});
}
- err = verifyRespStatus(rspInfo.getMsgContent().getItems().get(0).getStatus());
-
- if (err != ErrorCode.ERR_OK) {
- log.error("----Error PengXin start clean {} server return {}", taskId, err.getMsg());
- return new MulReturnType<>(err, null);
+ if (rspInfo == null || rspInfo.getCode() != ErrorCode.ERR_OK.getHttpCode()) {
+ log.error("----Error PengXin stop task{} server return error", taskId);
+ return new MulReturnType<>(ErrorCode.ERR_CALLDEVICE, null);
}
if (rspInfo.getMsgContent().getItems().size() == 0) {
@@ -279,7 +269,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
return new MulReturnType<>(ErrorCode.ERR_PENGXIN_ERROR, null);
}
- log.info("----Finish PengXin Stop Cleanup Task: {}", taskId);
+ log.debug("----Finish PengXin Stop Cleanup Task: {}", taskId);
return new MulReturnType<>(ErrorCode.ERR_OK, null);
}
} catch (Exception ex) {
@@ -335,9 +325,8 @@ public class PengXinAbilityImpl implements DisposeAbility {
* Dev get link status.
*/
private void devGetLinkStatus() {
- String url = urlRootPath + "dispose_device/information/linkstatus";
-
try {
+ String url = urlRootPath + "dispose_device/information/linkstatus";
if (token == null || token.length() == 0) {
deviceLinkStatus = false;
@@ -358,7 +347,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
return;
} catch (Exception ex) {
- log.error("Exception: {}, {}", url, ex.getMessage());
+ log.error(ex.getMessage());
}
deviceLinkStatus = false;
@@ -369,59 +358,54 @@ public class PengXinAbilityImpl implements DisposeAbility {
*/
@Override
public void getDisposeDeviceProtectObject() {
- // 集团一键处置线上环境,移除从设备获取能力信息相关接口调用
-// if (token == null || token.length() == 0) {
-// return;
-// }
-//
-// String url = urlRootPath + "dispose_device/information/capacity";
-//
-// try {
-// ProtocolRespDTO rspInfo = restfulInterface.getDeviceDisposeAbility(url, token);
-//
-// ErrorCode err = verifyInterfaceResp(rspInfo);
-//
-// if (err != ErrorCode.ERR_OK) {
-// log.error("----Error PengXin get dispose device protect object server {} return {}", url, token);
-// return;
-// }
-//
-// err = verifyRespStatus(rspInfo.getMsgContent().getStatus());
-//
-// if (err != ErrorCode.ERR_OK) {
-// log.error("---Error PengXin get dispose device protect object server {} return {}", url, err.getMsg());
-// return;
-// }
-//
-// rspInfo.getMsgContent().getCapacity().forEach(v -> {
-// if (v.getObjectType().equals(DisposeObjectType.DOMAIN.getValue())) {
-// log.error("Unsupported: {}", v.getObjectType());
-// } else if (v.getObjectType().equals(DisposeObjectType.URL.getValue())) {
-// log.error("Unsupported: {}", v.getObjectType());
-// } else {
-// synchronized (this) {
-//
-// protectIpV4.clear();
-// protectIpV6.clear();
-//
-// if (v.getIpType() == null || v.getIpType().equals(IpAddrType.IPV4_IPV6.getValue())) {
-// String [] allIpAddr = {null, "0.0.0.0", "0.0.0.0,::"};
-//
-// if(Arrays.asList(allIpAddr).contains(v.getDisposeIp())) {
-// protectIpV4.add("");
-// protectIpV6.add("");
-// }
-// } else if (v.getIpType().equals(IpAddrType.IPV4.getValue())) {
-// protectIpV4.add("");
-// } else if (v.getIpType().equals(IpAddrType.IPV6.getValue())) {
-// protectIpV6.add("");
-// }
-// }
-// }
-// });
-// } catch (Exception ex) {
-// log.error("server {}({}) exception: {}", url, token, ex);
-// }
+
+ if (token == null || token.length() == 0) {
+ return;
+ }
+
+ try {
+ String url = urlRootPath + "dispose_device/information/capacity";
+
+ ProtocolRespDTO rspInfo = restfulInterface.getDeviceDisposeAbility(url, token);
+
+ // 判断是否token过期
+ if (rspInfo != null && reLogin(rspInfo, rspInfo.getMsgContent().getStatus())) {
+ rspInfo = restfulInterface.getDeviceDisposeAbility(url, token);
+ }
+
+ if (rspInfo != null && rspInfo.getCode() == ErrorCode.ERR_OK.getHttpCode()
+ && rspInfo.getMsgContent().getStatus() == ErrorCode.ERR_OK.getCode()) {
+
+ rspInfo.getMsgContent().getCapacity().forEach(v -> {
+ if (v.getObjectType().equals(DisposeObjectType.DOMAIN.getValue())) {
+ log.error("Unsupported: {}", v.getObjectType());
+ } else if (v.getObjectType().equals(DisposeObjectType.URL.getValue())) {
+ log.error("Unsupported: {}", v.getObjectType());
+ } else {
+ synchronized (this) {
+
+ protectIpV4.clear();
+ protectIpV6.clear();
+
+ if (v.getIpType() == null || v.getIpType().equals(IpAddrType.IPV4_IPV6.getValue())) {
+ String [] allIpAddr = {null, "0.0.0.0", "0.0.0.0,::"};
+
+ if(Arrays.asList(allIpAddr).contains(v.getDisposeIp())) {
+ protectIpV4.add("");
+ protectIpV6.add("");
+ }
+ } else if (v.getIpType().equals(IpAddrType.IPV4.getValue())) {
+ protectIpV4.add("");
+ } else if (v.getIpType().equals(IpAddrType.IPV6.getValue())) {
+ protectIpV6.add("");
+ }
+ }
+ }
+ });
+
+ }
+ } catch (Exception ignored) {
+ }
}
/**
@@ -432,36 +416,34 @@ public class PengXinAbilityImpl implements DisposeAbility {
*/
@Override
public boolean isCarryProtectIp(String ipAddr) {
- // 集团一键处置线上环境,默认支持所有IP地址
- return true;
-// boolean ret = false;
-// IPAddress addr = new IPAddressString(ipAddr).getAddress();
-// synchronized (this) {
-// if (addr.isIPv4()) {
-// ret = protectIpV4.stream().anyMatch(v -> Helper.ipInRange(v, ipAddr));
-// }
-//
-// if (addr.isIPv6()) {
-// ret = protectIpV6.stream().anyMatch(v -> Helper.ipInRange(v, ipAddr));
-// }
-// }
-//
-// if (!ret) {
-// // 更新设备防护IP
-// getDisposeDeviceProtectObject();
-//
-// synchronized (this) {
-// if (addr.isIPv4()) {
-// ret = protectIpV4.stream().anyMatch(v -> Helper.ipInRange(v, ipAddr));
-// }
-//
-// if (addr.isIPv6()) {
-// ret = protectIpV6.stream().anyMatch(v -> Helper.ipInRange(v, ipAddr));
-// }
-// }
-// }
-//
-// return ret;
+ boolean ret = false;
+ IPAddress addr = new IPAddressString(ipAddr).getAddress();
+ synchronized (this) {
+ if (addr.isIPv4()) {
+ ret = protectIpV4.stream().anyMatch(v -> Helper.ipInRange(v, ipAddr));
+ }
+
+ if (addr.isIPv6()) {
+ ret = protectIpV6.stream().anyMatch(v -> Helper.ipInRange(v, ipAddr));
+ }
+ }
+
+ if (!ret) {
+ // 更新设备防护IP
+ getDisposeDeviceProtectObject();
+
+ synchronized (this) {
+ if (addr.isIPv4()) {
+ ret = protectIpV4.stream().anyMatch(v -> Helper.ipInRange(v, ipAddr));
+ }
+
+ if (addr.isIPv6()) {
+ ret = protectIpV6.stream().anyMatch(v -> Helper.ipInRange(v, ipAddr));
+ }
+ }
+ }
+
+ return ret;
}
/**
@@ -473,35 +455,32 @@ public class PengXinAbilityImpl implements DisposeAbility {
@Override
public MulReturnType taskStatus(String taskId) {
if (token == null || token.length() == 0) {
- upgradeToken();
return new MulReturnType<>(ErrorCode.ERR_LOGOUT, -1L);
}
try {
String url = urlRootPath + "dispose_device/task/get";
- ProtocolRespDTO rspInfo = restfulInterface.getDeviceTaskStatus(url, token,
- new String[]{taskId});
+ ProtocolRespDTO rspInfo = restfulInterface.getDeviceTaskStatus(url, token,
+ new String[]{taskId});
- ErrorCode err = verifyInterfaceResp(rspInfo);
-
- if (err != ErrorCode.ERR_OK) {
- log.error("----Error PengXin start clean {} server return {}", taskId, err.getMsg());
- return new MulReturnType<>(err, -1L);
+ // 判断是否token过期
+ if (rspInfo != null && reLogin(rspInfo, rspInfo.getMsgContent().getItems().get(0).getStatus())) {
+ rspInfo = restfulInterface.getDeviceTaskStatus(url, token, new String[]{taskId});
}
- err = verifyRespStatus(rspInfo.getMsgContent().getItems().get(0).getStatus());
+ if (rspInfo != null && rspInfo.getCode() == ErrorCode.ERR_OK.getHttpCode()) {
- if (err != ErrorCode.ERR_OK) {
- log.error("----Error PengXin start clean {} server return {}", taskId, err.getMsg());
- return new MulReturnType<>(err, -1L);
+ int errCode = rspInfo.getMsgContent().getItems().get(0).getStatus();
+ if (rspInfo.getMsgContent().getItems().size() == 0 || errCode != ErrorCode.ERR_OK.getCode()) {
+ return new MulReturnType<>(ErrorCode.ERR_NOSUCHTASK, -1L);
+ }
+
+ return new MulReturnType<>(ErrorCode.ERR_OK,
+ rspInfo.getMsgContent().getItems().get(0).getTaskStatus());
+ } else {
+ return new MulReturnType<>(ErrorCode.ERR_CALLDEVICE, -1L);
}
-
- if (rspInfo.getMsgContent().getItems().size() == 0) {
- return new MulReturnType<>(ErrorCode.ERR_NOSUCHTASK, -1L);
- }
-
- return new MulReturnType<>(ErrorCode.ERR_OK, rspInfo.getMsgContent().getItems().get(0).getTaskStatus());
} catch (Exception ignored) {
return new MulReturnType<>(ErrorCode.ERR_SYSTEMEXCEPTION, -1L);
}
@@ -511,71 +490,41 @@ public class PengXinAbilityImpl implements DisposeAbility {
* Upgrade token.
*/
private void upgradeToken() {
- String url = urlRootPath + "dispose_device/auth/login";
try {
- ProtocolRespDTO logInfo = restfulInterface.login(url, username, password);
+ String url = urlRootPath + "dispose_device/auth/login";
+ ProtocolRespDTO logInfo = restfulInterface.login(url, username, password);
if (logInfo != null && logInfo.getMsgContent().getStatus() == ErrorCode.ERR_OK.getCode()) {
this.token = logInfo.getMsgContent().getToken();
}
- } catch (Exception ex) {
- log.error("Exception: {}, {}", url, ex.getMessage());
- }
- }
-
-
- /**
- * Verify interface resp error code.
- *
- * @param the type parameter
- * @param rspInfo the rsp info
- * @return the error code
- */
- private ErrorCode verifyInterfaceResp(ProtocolRespDTO rspInfo) {
- if (rspInfo == null) {
- return ErrorCode.ERR_PENGXIN_ERROR;
- } else if (rspInfo.getCode() == HttpServletResponse.SC_UNAUTHORIZED) {
- upgradeToken();
- return ErrorCode.ERR_TOKENTIMEOUT;
- } else if (rspInfo.getCode() != HttpServletResponse.SC_OK) {
- return ErrorCode.ERR_PENGXIN_ERROR;
- }
-
- if (rspInfo.getMsgContent() == null) {
- return ErrorCode.ERR_PARAMS;
- }
-
- return ErrorCode.ERR_OK;
- }
-
- /**
- * Verify resp status error code.
- *
- * @param status the status
- * @return the error code
- */
- private ErrorCode verifyRespStatus(int status) {
- if (status == ErrorCode.ERR_LOGOUT.getCode()
- || status == ErrorCode.ERR_TOKENTIMEOUT.getCode()
- || status == ErrorCode.ERR_TOKENNOTFOUND.getCode()) {
- upgradeToken();
- return ErrorCode.ERR_TOKENTIMEOUT;
- }
-
- try {
- ErrorCode err = CommonEnumHandler.codeOf(ErrorCode.class, status);
-
- if (err == null) {
- return ErrorCode.ERR_CALLDEVICE;
- } else {
- return err;
- }
} catch (Exception ignored) {
- if (status == ErrorCode.ERR_OK.getCode()) {
- return ErrorCode.ERR_OK;
- } else {
- return ErrorCode.ERR_CALLDEVICE;
+ }
+ }
+
+ /**
+ * reLogin.
+ */
+ private boolean reLogin(ProtocolRespDTO rspInfo, int status) {
+ try {
+ // 判断是否token过期
+ if (rspInfo.getCode() == HttpServletResponse.SC_UNAUTHORIZED) {
+ // 重新登录获取 token
+ upgradeToken();
+ return true;
}
+
+ if (rspInfo.getCode() == HttpServletResponse.SC_OK) {
+ if (status == ErrorCode.ERR_LOGOUT.getCode() ||
+ status == ErrorCode.ERR_TOKENTIMEOUT.getCode() ||
+ status == ErrorCode.ERR_TOKENNOTFOUND.getCode()) {
+ upgradeToken();
+ return true;
+ }
+ }
+
+ return false;
+ } catch (Exception ignored) {
+ return false;
}
}
@@ -584,14 +533,17 @@ public class PengXinAbilityImpl implements DisposeAbility {
*/
@Override
public void periodTaskRuntime() {
- // 集团一键处置线上环境,不再定时获取设备能力信息
+ log.debug("++++PengXin Period Task Running");
+
// 更新防护对象
- //getDisposeDeviceProtectObject();
+ getDisposeDeviceProtectObject();
// 更新心跳状态
if (timerCnt++ % DisposeConfigValue.HEART_PERIOD_OF_SECOND == 0) {
devGetLinkStatus();
}
+
+ log.debug("----PengXin Period Task Running");
}
/**
diff --git a/src/main/java/com/dispose/ability/impl/DpTechAbilityImpl.java b/src/main/java/com/dispose/ability/impl/DpTechAbilityImpl.java
index 582b72fb..94261130 100644
--- a/src/main/java/com/dispose/ability/impl/DpTechAbilityImpl.java
+++ b/src/main/java/com/dispose/ability/impl/DpTechAbilityImpl.java
@@ -14,7 +14,6 @@ import com.dispose.common.NetflowDirection;
import com.dispose.pojo.entity.ServiceInfo;
import com.dispose.pojo.po.MulReturnType;
import com.dispose.pojo.vo.DeviceFirewareInfo;
-import com.dispose.security.arithmetic.CryptoHelper;
import com.dptech.dispose.AbnormalFlowCleaningServicePortType;
import com.dptech.dispose.ArrayOfProtectionObjectDataForService;
import com.dptech.dispose.NtcRequestResultInfo;
@@ -102,7 +101,7 @@ public class DpTechAbilityImpl implements DisposeAbility {
this.cleanTypePort = (AbnormalFlowCleaningServicePortType) jaxWsProxyFactoryBean.create();
Map ctx = ((BindingProvider) this.cleanTypePort).getRequestContext();
- ctx.put("password", new String(CryptoHelper.base64Decryption(password)));
+ ctx.put("password", password);
ctx.put("username", username);
// 配置连接,访问超时时间
diff --git a/src/main/java/com/dispose/ability/impl/HuaWeiAbilityImpl.java b/src/main/java/com/dispose/ability/impl/HuaWeiAbilityImpl.java
index d044131e..c23b140c 100644
--- a/src/main/java/com/dispose/ability/impl/HuaWeiAbilityImpl.java
+++ b/src/main/java/com/dispose/ability/impl/HuaWeiAbilityImpl.java
@@ -10,7 +10,6 @@ import com.dispose.common.NetflowDirection;
import com.dispose.pojo.entity.ServiceInfo;
import com.dispose.pojo.po.MulReturnType;
import com.dispose.pojo.vo.DeviceFirewareInfo;
-import com.dispose.security.arithmetic.CryptoHelper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.huawei.dispose.common.HuaWeiLoginResp;
import com.huawei.dispose.protocol.HuaWeiInterface;
@@ -86,7 +85,7 @@ public class HuaWeiAbilityImpl implements DisposeAbility {
public void initDeviceEnv(String urlPath, String username, String password) {
this.urlRootPath = urlPath;
this.username = username;
- this.password = new String(CryptoHelper.base64Decryption(password));
+ this.password = password;
upgradeToken();
}
diff --git a/src/main/java/com/dispose/ability/impl/HuaWeiFireWallAbilityImpl.java b/src/main/java/com/dispose/ability/impl/HuaWeiFireWallAbilityImpl.java
index 091fb029..469f3565 100644
--- a/src/main/java/com/dispose/ability/impl/HuaWeiFireWallAbilityImpl.java
+++ b/src/main/java/com/dispose/ability/impl/HuaWeiFireWallAbilityImpl.java
@@ -85,7 +85,7 @@ public class HuaWeiFireWallAbilityImpl implements DisposeAbility {
public void initDeviceEnv(String urlPath, String username, String password) {
this.urlRootPath = urlPath;
this.username = username;
- this.password = new String(CryptoHelper.base64Decryption(password));
+ this.password = password;
upgradeToken();
}
diff --git a/src/main/java/com/dispose/ability/impl/UpfAbilityImpl.java b/src/main/java/com/dispose/ability/impl/UpfAbilityImpl.java
index c31a4086..0b9195d7 100644
--- a/src/main/java/com/dispose/ability/impl/UpfAbilityImpl.java
+++ b/src/main/java/com/dispose/ability/impl/UpfAbilityImpl.java
@@ -1,5 +1,10 @@
package com.dispose.ability.impl;
+import com.cmhi.dispose.common.CmhiDisposeStartTaskItem;
+import com.cmhi.dispose.common.CmhiDisposeStartTaskRsp;
+import com.cmhi.dispose.common.CmhiDisposeStopTaskRsp;
+import com.cmhi.dispose.common.CmhiDisposeTaskStatusRsp;
+import com.cmhi.dispose.protocol.CmhiDisposeInterface;
import com.dispose.common.DisposeCapacityType;
import com.dispose.common.DisposeObjectType;
import com.dispose.common.ErrorCode;
@@ -8,12 +13,6 @@ import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
import com.dispose.pojo.entity.ServiceInfo;
import com.dispose.pojo.po.MulReturnType;
import com.dispose.pojo.vo.DeviceFirewareInfo;
-import com.dispose.security.arithmetic.CryptoHelper;
-import com.pengxin.dispose.common.PengXinStartTaskItem;
-import com.pengxin.dispose.common.PengXinStartTaskRsp;
-import com.pengxin.dispose.common.PengXinStopTaskRsp;
-import com.pengxin.dispose.common.PengXinTaskStatusRsp;
-import com.pengxin.dispose.protocol.PengXinInterface;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
@@ -29,11 +28,11 @@ import java.util.List;
* @author Nicole
*/
@Slf4j
-public class UpfAbilityImpl extends PengXinAbilityImpl {
+public class UpfAbilityImpl extends CmhiAbilityImpl {
/**
* The Restful interface.
*/
- private final PengXinInterface restfulInterface = new PengXinInterface();
+ private final CmhiDisposeInterface restfulInterface = new CmhiDisposeInterface();
/**
* The upf dispose type.
*/
@@ -103,7 +102,7 @@ public class UpfAbilityImpl extends PengXinAbilityImpl {
public void initDeviceEnv(String urlPath, String username, String password) {
this.urlRootPath = urlPath;
this.username = username;
- this.password = new String(CryptoHelper.base64Decryption(password));
+ this.password = password;
restfulInterface.setParams(1, 0);
//获取token值
upgradeToken();
@@ -126,7 +125,7 @@ public class UpfAbilityImpl extends PengXinAbilityImpl {
@Nullable NetflowDirection nfDirection,
@Nullable Integer attackType,
@Nullable Long duration) {
- List reqItems = new ArrayList<>();
+ List reqItems = new ArrayList<>();
String url = urlRootPath + "dispose_device/task/start";
//1.调用upf设备登录接口,生成token值;2.upf不提供登录接口,随机生成token值,保证有token值
if (token == null || token.length() == 0) {
@@ -143,7 +142,7 @@ public class UpfAbilityImpl extends PengXinAbilityImpl {
// 适配处置时间参数, -1为不限制处置时间
duration = -1L;
- reqItems.add(PengXinStartTaskItem.builder()
+ reqItems.add(CmhiDisposeStartTaskItem.builder()
.type(getUpfTaskType(capType))
.disposeObject(disposeObject)
.objectType(getUpfObjectType(objectType))
@@ -151,7 +150,7 @@ public class UpfAbilityImpl extends PengXinAbilityImpl {
.taskReqId(String.valueOf(taskReqId++))
.build());
- ProtocolRespDTO rspInfo = restfulInterface.startDisposeTask(url, token, reqItems);
+ ProtocolRespDTO rspInfo = restfulInterface.startDisposeTask(url, token, reqItems);
// upf设备不判断header认证消息中的token值
if (rspInfo == null || rspInfo.getCode() != ErrorCode.ERR_OK.getHttpCode()) {
@@ -210,8 +209,8 @@ public class UpfAbilityImpl extends PengXinAbilityImpl {
return new MulReturnType<>(ErrorCode.ERR_PARAMS, null);
}
- ProtocolRespDTO rspInfo = restfulInterface.stopDisposeTask(url, token,
- new String[]{taskId});
+ ProtocolRespDTO rspInfo = restfulInterface.stopDisposeTask(url, token,
+ new String[]{taskId});
if (rspInfo == null || rspInfo.getCode() != ErrorCode.ERR_OK.getHttpCode()) {
log.error("----Error UPF stop task{} server return error", taskId);
@@ -316,8 +315,8 @@ public class UpfAbilityImpl extends PengXinAbilityImpl {
try {
String url = urlRootPath + "dispose_device/task/get";
- ProtocolRespDTO rspInfo = restfulInterface.getDeviceTaskStatus(url, token,
- new String[]{taskId});
+ ProtocolRespDTO rspInfo = restfulInterface.getDeviceTaskStatus(url, token,
+ new String[]{taskId});
if (rspInfo != null && rspInfo.getCode() == ErrorCode.ERR_OK.getHttpCode()) {
int errCode = rspInfo.getMsgContent().getItems().get(0).getStatus();
diff --git a/src/main/java/com/dispose/common/Constants.java b/src/main/java/com/dispose/common/Constants.java
new file mode 100644
index 00000000..c605c23c
--- /dev/null
+++ b/src/main/java/com/dispose/common/Constants.java
@@ -0,0 +1,112 @@
+package com.dispose.common;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * The emos constants.
+ *
+ * @author
+ */
+public class Constants {
+ /**
+ * DDoS具体攻击类型
+ */
+ public static final Map ATTACK_TYPE;
+
+ static {
+ Map attTypeMap = new HashMap<>();
+ attTypeMap.put("hosttotaltraffic", "Host total traffic|1|2");
+
+ attTypeMap.put("RSTFlood", "RST Flood|3|4");
+ attTypeMap.put("SYNFlood", "SYN Flood|5|6");
+ attTypeMap.put("ACKFlood", "ACK Flood|7|8");
+ attTypeMap.put("TCPnullFlood", "TCP null|9|10");
+ attTypeMap.put("SYNACKAmplification", "SYN/ACK Amplification|11|12");
+ attTypeMap.put("tcpmisuse", "TCP Misuse|13|14");
+ attTypeMap.put("FINFlood", "FIN Flood|15|16");
+ attTypeMap.put("TCPFragment", "TCP Fragment|17|18");
+ attTypeMap.put("HTTPFlood", "HTTP Flood|19|20");
+ attTypeMap.put("HTTPSFlood", "HTTPS Flood|21|22");
+
+ attTypeMap.put("SIPFlood", "SIP Flood|23|24");
+ attTypeMap.put("DNS", "DNS|25|26");
+
+ attTypeMap.put("UDPFragment", "UDP Fragment|27|28");
+ attTypeMap.put("chargenAmplification", "chargen Amplification|29|30");
+ attTypeMap.put("L2TPAmplification", "L2TP Amplification|31|32");
+ attTypeMap.put("mDNSAmplification", "mDNS Amplification|33|34");
+ attTypeMap.put("MSSQLRSAmplification", "MS SQL RS Amplification|35|36");
+ attTypeMap.put("NetBIOSAmplification", "NetBIOS Amplification|37|38");
+ attTypeMap.put("NTPAmplification", "NTP Amplification|39|40");
+ attTypeMap.put("RIPv1Amplification", "RIPv1 Amplification|41|42");
+ attTypeMap.put("rpcbindAmplification", "rpcbind Amplification|43|44");
+ attTypeMap.put("SNMPAmplification", "SNMP Amplification|45|46");
+ attTypeMap.put("SSDPAmplification", "SSDP Amplification|47|48");
+ attTypeMap.put("DNSAmplification", "DNS Amplification|49|50");
+ attTypeMap.put("QOTDAmplification", "QOTD Amplification|51|52");
+ attTypeMap.put("Quake3Amplification", "Quake3 Amplification|53|54");
+ attTypeMap.put("SteamAmplification", "Steam Amplification|55|56");
+ attTypeMap.put("CLADPAmplification", "CLADP Amplification|57|58");
+ attTypeMap.put("MemcacheAmplification", "Memcache Amplification|59|60");
+ attTypeMap.put("UDPFlood", "UDP Flood|61|62");
+
+ attTypeMap.put("smurf", "Smurf|63|64");
+ attTypeMap.put("icmpfrgment", "ICMP Fragment|65|66");
+ attTypeMap.put("ICMPFlood", "ICMP Flood|67|68");
+
+ attTypeMap.put("IPv4Protocol0", "IPv4 Protocol 0|69|70");
+ attTypeMap.put("IPPrivate", "IP Private|71|72");
+ attTypeMap.put("landflood", "Land flood|73|74");
+ attTypeMap.put("IGMPFlood", "IGMP Flood|75|76");
+ ATTACK_TYPE = Collections.unmodifiableMap(attTypeMap);
+ }
+
+ /**
+ * 各省份城市
+ */
+ public static final String REGION_BEIJING = "北京";
+ public static final String REGION_SHANGHAI = "上海";
+ public static final String REGION_TIANJIN = "天津";
+ public static final String REGION_CHONGQING = "重庆";
+
+ /**
+ * 处置类型(1:清洗,2:黑洞,3:高防)
+ */
+ public static final int CLEANUP = 1;
+ public static final int BLACKHOOL = 2;
+ public static final int HIDEPEND = 3;
+
+ /**
+ * 派单eoms模板
+ */
+ public static final String DISPATCH_TEMPLATE = "\nMsgSerial:{0}\nSDN:{1}\nNeName:{2}\nEquipmentClass:99236\n" +
+ "AlarmUniqueId:{3}\nAlarmUniqueClearId:{4}\nLocateNeName:{5}\nLocateNeType:99236\nLocateNeSDN:{6}\nLocateInfo:{7}\n" +
+ "EventTime:{8}\nCancelTime:{9}\nVendorAlarmType:{10}\nVendorSeverity:{11}\nVendorAlarmId:{12}\nAlarmTitle:{13}\n" +
+ "ProbableCauseTxt:{14}\nRLocateSDN: \nRLocateNeName: \nRLocateNeType: \nRate: \nAlarmLocation: \nAlarmCheck: \n" +
+ "HolderType: \nAlarmStatus:{15}\nCorrelateAlarmFlag: \nAlarmActCount: \nNeIp:\nEmsId: \nVendor:99083\nAlarmText:{16}\n" +
+ "NeAlias: \nVersion: \nRemoteNe: \nAlarmProvince:{17}\nAlarmRegion:{18}\nAlarmCounty: \nSite: \nSiteType: \nSiteProperty: \n" +
+ "MachineroomIDofZGTT: \nBusinessSystem:{19}\nCircuitNo: \nMac: \nSpecialty:9\nNetworkType:903\nNeSubType: \nEffectCircuitNum: \n" +
+ "CircuitLevel: \nAlarmSeverity:3\nNmsAlarmId:0903-083-056-10-900001\nStandardAlarmName:{20}\nAlarmLogicClass:{21}\n" +
+ "AlarmLogicSubClass:{22}\nEffectOnEquipment:5\nEffectOnBusiness:4\nNmsAlarmType:1\nSendGroupFlag: \nStandardFlag:2\n" +
+ "AlarmExplanation:{23}\nBusinessType: \nBusinessInfo:{24}\nIsRelatedRemote: \nLocateNeStatus:1300\nProjectNo: \n" +
+ "ProjectName: \nProjectStartTime: \nProjectEndTime: \nGroupCustomer: \nCustomerLevel: \nServiceType: \nServiceLevel: \n" +
+ "ServiceName: \nServiceCrossDomainType: \nInterruptCircuitState: \nCircuitLocateInfo: \nHomeClientNum: \nHomeCellNum: \n" +
+ "LinkOnuNum: \n";
+
+ /**
+ * 0:网元自动清除 --收到从采集源发送的清除告警
+ */
+ public static final int NE_AUTO_CLEARED_STATUS = 0;
+
+ /**
+ * 1:活动告警---告警当前为活动状态
+ */
+ public static final int ACTIVE_ALARM_STATUS = 1;
+
+ /**
+ * 2:同步清除---已采集活动告警,但采集平台从告警源同步时,发现已经没有对应的活动告警,由采集平台产生的清除告警
+ */
+ public static final int SYNCHRONIZATION_CLEAR_STATUS = 2;
+}
diff --git a/src/main/java/com/dispose/common/DisposeDeviceType.java b/src/main/java/com/dispose/common/DisposeDeviceType.java
index e5dc8bf3..684503b3 100644
--- a/src/main/java/com/dispose/common/DisposeDeviceType.java
+++ b/src/main/java/com/dispose/common/DisposeDeviceType.java
@@ -17,7 +17,7 @@ public enum DisposeDeviceType implements BaseEnum {
/**
* The Pengxin platform.
*/
- PENGXIN_PLATFORM(2, "鹏信处置设备"),
+ CMHI_PLATFORM(2, "集团一键处置设备"),
/**
* The Huawei platform.
*/
diff --git a/src/main/java/com/dispose/common/ErrorCode.java b/src/main/java/com/dispose/common/ErrorCode.java
index f7051a41..31802b34 100644
--- a/src/main/java/com/dispose/common/ErrorCode.java
+++ b/src/main/java/com/dispose/common/ErrorCode.java
@@ -293,6 +293,10 @@ public enum ErrorCode implements BaseEnum {
* The Err huawei firewall error.
*/
ERR_HUAWEIFIREWALL_ERROR(305, "华为防火墙返回错误"),
+ /**
+ * The Err emos create message error.
+ */
+ EMOS_CREATEMESSAGE_ERROR(306, "EMOS发送信息错误"),
;
/**
diff --git a/src/main/java/com/dispose/config/KafkaConfiguration.java b/src/main/java/com/dispose/config/KafkaConfiguration.java
new file mode 100644
index 00000000..5e947e64
--- /dev/null
+++ b/src/main/java/com/dispose/config/KafkaConfiguration.java
@@ -0,0 +1,111 @@
+package com.dispose.config;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.kafka.clients.producer.ProducerConfig;
+import org.apache.kafka.common.serialization.StringSerializer;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.kafka.annotation.EnableKafka;
+import org.springframework.kafka.core.DefaultKafkaProducerFactory;
+import org.springframework.kafka.core.KafkaTemplate;
+import org.springframework.kafka.core.ProducerFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * The type Kafka configuration.
+ *
+ * @author
+ */
+@EnableKafka
+@ConfigurationProperties(prefix = "kafka")
+@Configuration
+@Component
+@Slf4j
+public class KafkaConfiguration {
+ /**
+ * The Producer servers.
+ */
+ @Value("${kafka.producer.servers}")
+ private String producerServers;
+ /**
+ * The Producer retries.
+ */
+ @Value("${kafka.producer.retries}")
+ private Integer producerRetries;
+ /**
+ * The Producer batch size.
+ */
+ @Value("${kafka.producer.batch.size}")
+ private Integer producerBatchSize;
+ /**
+ * The Producer linger.
+ */
+ @Value("${kafka.producer.linger}")
+ private Integer producerLinger;
+ /**
+ * The Buffer memory.
+ */
+ @Value("${kafka.producer.buffer.memory}")
+ private Integer bufferMemory;
+
+ /**
+ * The Kafka topic.
+ */
+ @Value("${kafka.dispose.topic}")
+ private String kafkaTopic;
+
+ /**
+ * Producer configs map.
+ *
+ * @return the map
+ */
+ public Map producerConfigs() {
+ Map props = new HashMap<>(1);
+ log.info("-----------------servers---------: {}", producerServers);
+ props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, producerServers);
+ props.put(ProducerConfig.RETRIES_CONFIG, producerRetries);
+ props.put(ProducerConfig.BATCH_SIZE_CONFIG, producerBatchSize);
+ props.put(ProducerConfig.LINGER_MS_CONFIG, producerLinger);
+ props.put(ProducerConfig.BUFFER_MEMORY_CONFIG, bufferMemory);
+ props.put(ProducerConfig.RECONNECT_BACKOFF_MS_CONFIG, 5000);
+ props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
+ props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
+ return props;
+ }
+
+ /**
+ * Gets kafka topic.
+ *
+ * @return the kafka topic
+ */
+ public String getKafkaTopic() {
+ return kafkaTopic;
+ }
+
+ /**
+ * Producer factory producer factory.
+ *
+ * @return the producer factory
+ */
+ public ProducerFactory producerFactory() {
+ return new DefaultKafkaProducerFactory<>(producerConfigs());
+ }
+
+ /**
+ * Kafka template kafka template.
+ *
+ * @return the kafka template
+ */
+ @Bean
+ public KafkaTemplate kafkaTemplate() {
+ KafkaTemplate kafkaTemplate = new KafkaTemplate<>(producerFactory());
+ kafkaTemplate.setDefaultTopic(kafkaTopic);
+
+ return kafkaTemplate;
+ }
+}
diff --git a/src/main/java/com/dispose/config/UndertowPoolCustomizer.java b/src/main/java/com/dispose/config/UndertowPoolCustomizer.java
new file mode 100644
index 00000000..db07f635
--- /dev/null
+++ b/src/main/java/com/dispose/config/UndertowPoolCustomizer.java
@@ -0,0 +1,30 @@
+package com.dispose.config;
+
+import io.undertow.server.DefaultByteBufferPool;
+import io.undertow.websockets.jsr.WebSocketDeploymentInfo;
+import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
+import org.springframework.boot.web.server.WebServerFactoryCustomizer;
+import org.springframework.stereotype.Component;
+
+/**
+ * The type Undertow pool customizer.
+ *
+ * @author
+ */
+@Component
+public class UndertowPoolCustomizer implements WebServerFactoryCustomizer {
+
+ /**
+ * Customize.
+ *
+ * @param factory the factory
+ */
+ @Override
+ public void customize(UndertowServletWebServerFactory factory) {
+ factory.addDeploymentInfoCustomizers(deploymentInfo -> {
+ WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo();
+ webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(false, 1024));
+ deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", webSocketDeploymentInfo);
+ });
+ }
+}
diff --git a/src/main/java/com/dispose/controller/KafkaController.java b/src/main/java/com/dispose/controller/KafkaController.java
new file mode 100644
index 00000000..857cd6db
--- /dev/null
+++ b/src/main/java/com/dispose/controller/KafkaController.java
@@ -0,0 +1,252 @@
+package com.dispose.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.dispose.common.Constants;
+import com.dispose.common.ErrorCode;
+import com.dispose.config.KafkaConfiguration;
+import com.dispose.manager.AlarmInfoManager;
+import com.dispose.pojo.dto.protocol.base.BaseRespStatus;
+import com.dispose.pojo.dto.protocol.base.ProtocolReqDTO;
+import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
+import com.dispose.pojo.dto.protocol.kafka.AlarmInfoReq;
+import com.dispose.pojo.dto.protocol.kafka.EmosAlarmInfo;
+import com.dispose.pojo.entity.AlarmInformation;
+import com.dispose.pojo.po.MulReturnType;
+import com.dispose.security.annotation.Decryption;
+import com.dispose.security.annotation.Encryption;
+import com.dispose.service.MsgSerialService;
+import com.dispose.validation.group.ValidGroups;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.exception.ExceptionUtils;
+import org.springframework.kafka.support.SendResult;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Controller;
+import org.springframework.util.concurrent.ListenableFuture;
+import org.springframework.validation.annotation.Validated;
+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.ResponseBody;
+
+import javax.annotation.Resource;
+import java.text.MessageFormat;
+import java.util.Objects;
+
+/**
+ * The type Auth controller.
+ *
+ * @author
+ */
+@Controller
+@RequestMapping(value = "/kafka")
+@Slf4j
+@Api(value = "处置平台发送消息接口", tags = "处置平台发送消息接口")
+@Component
+@Validated
+@Encryption
+@Decryption
+public class KafkaController {
+ /**
+ * The Kafka configuration.
+ */
+ @Resource
+ private KafkaConfiguration kafkaConfiguration;
+
+ /**
+ * The message serial service.
+ */
+ @Resource
+ private MsgSerialService msgSerialService;
+
+ /**
+ * The alarm information manager.
+ */
+ @Resource
+ private AlarmInfoManager alarmInfoManager;
+
+ /**
+ * Dispatch command sent to kafka.
+ *
+ * @param mr the mr
+ * @return the protocol resp dto
+ */
+ @PostMapping("/dispatchCommand")
+ @ResponseBody
+ @ApiOperation("发送消息")
+ public ProtocolRespDTO dispatchCommand(
+ @Validated(ValidGroups.ProtocolCommonValid.class)
+ @RequestBody ProtocolReqDTO mr) {
+ //获取入参信息
+ BaseRespStatus rspInfo = new BaseRespStatus();
+ log.info("emos alarm is:{}", mr.getMsgContent().getAlarmInfo());
+ EmosAlarmInfo alarmInfo = JSONObject.parseObject(mr.getMsgContent().getAlarmInfo(), EmosAlarmInfo.class);
+
+ //拼接emos据格式
+ String content = createSendContent(alarmInfo);
+ if (content == null) {
+ rspInfo.setStatus(ErrorCode.EMOS_CREATEMESSAGE_ERROR.getCode());
+ rspInfo.setMessage(new String[]{ErrorCode.EMOS_CREATEMESSAGE_ERROR.getMsg()});
+ return ProtocolRespDTO.result(ErrorCode.EMOS_CREATEMESSAGE_ERROR, rspInfo);
+ }
+
+ //保存数据格式到数据库
+ log.info("send alarm :{}", content);
+ AlarmInformation alarmInformation = AlarmInformation.builder().alarmInfo(content).build();
+ alarmInfoManager.addAlarmInfo(alarmInformation);
+
+ //推动数据格式到kafka
+ ListenableFuture> sendResult = kafkaConfiguration
+ .kafkaTemplate()
+ .sendDefault(0, System.currentTimeMillis(), "dispose", content);
+
+ sendResult.addCallback(v -> log.info("Kafka send {} to {} at {}", content,
+ Objects.requireNonNull(v)
+ .getRecordMetadata()
+ .topic(), v.getRecordMetadata().partition()),
+ ex -> log.error("Kafka send error: {}", ex.getMessage()));
+
+ rspInfo.setStatus(ErrorCode.ERR_OK.getCode());
+ rspInfo.setMessage(new String[]{ErrorCode.ERR_OK.getMsg()});
+ return ProtocolRespDTO.result(ErrorCode.ERR_OK, rspInfo);
+ }
+
+ /**
+ * @param alarmInfo emos告警信息
+ * @return 发送的消息
+ */
+ private String createSendContent(EmosAlarmInfo alarmInfo) {
+ try {
+ long dbIncrement = msgSerialService.getMaxMessageSerial();
+ long increment = dbIncrement + 1;
+ MulReturnType returnType = msgSerialService.updateMessageSerial(increment);
+ if (returnType.getFirstParam() == ErrorCode.ERR_OK) {
+ increment = returnType.getSecondParam();
+ } else {
+ increment = dbIncrement;
+ }
+
+ String dstIp = alarmInfo.getDstIp();
+ String alarmId = alarmInfo.getAlarmId();
+ //LocateInfo: 192.168.11.6 ddos attack alarm,Memcache , 2019-08-01 12:31, 2.1Gbps, 1.01Mpps
+ String locateInfo = getAlarmEvent(alarmInfo);
+ String eventTime = alarmInfo.getStartTime();
+ String cancelTime = alarmInfo.getEndTime();
+
+ //告警类型vendorAlarmType、告警级别vendorSeverity、告警号vendorAlarmId、告警标题AlarmTitle、告警可能原因ProbableCauseTxt
+ String type = Constants.ATTACK_TYPE.get(alarmInfo.getAttackType());
+ String vendorSeverity = characterEncode("一级");
+ String vendorAlarmType;
+ String vendorAlarmId;
+ if (type != null) {
+ String[] arr = type.split("\\|");
+ String bps = "bps";
+ vendorAlarmType = arr[0];
+ if (bps.equals(alarmInfo.getBpspps())) {
+ vendorAlarmId = arr[1];
+ } else {
+ vendorAlarmId = arr[2];
+ }
+ } else {
+ vendorAlarmType = alarmInfo.getAttackType();
+ vendorAlarmId = "0";
+ log.info("unKnown attack type:" + vendorAlarmType);
+ }
+ String alarmStatus = String.valueOf(Constants.ACTIVE_ALARM_STATUS);
+ String alarmText = characterEncode(getAlarmText(alarmInfo));
+ String alarmExplanation = characterEncode(getAlarmExplanation(alarmInfo));
+
+ return MessageFormat.format(Constants.DISPATCH_TEMPLATE, increment, dstIp,
+ dstIp, alarmId, alarmId, dstIp, dstIp, locateInfo, eventTime, cancelTime,
+ vendorAlarmType, vendorSeverity, vendorAlarmId, characterEncode("重保攻击事件告警"),
+ characterEncode("DDos攻击事件"), alarmStatus, alarmText,
+ characterEncode(alarmInfo.getDstProvince()), characterEncode(alarmInfo.getDstCity()),
+ characterEncode("网络部集中抗D系统"), characterEncode("DDOS攻击事件告警"),
+ characterEncode("安全告警"), characterEncode("DDOS告警"),
+ alarmExplanation, characterEncode("集中抗D"));
+ } catch (Exception e) {
+ log.error("createSendContent告警消息异常,详细信息:{}", ExceptionUtils.getStackTrace(e));
+ return null;
+ }
+ }
+
+ /**
+ * 获取告警事件AlarmEvent
+ */
+ private String getAlarmEvent(EmosAlarmInfo a) {
+ return a.getDstIp() + " ddos attack alarm, " + a.getAttackType() + ", " + a.getStartTime() +
+ ", " + a.getMaxBps() + ", " + a.getMaxPps();
+ }
+
+ /**
+ * 数据编码都采用GBK编码方式
+ */
+ private String characterEncode(String character) {
+ try {
+ return new String(character.getBytes("GBK"), "GBK");
+ } catch (Exception e) {
+ log.info("character encoding failed:" + e.getMessage());
+ return character;
+ }
+ }
+
+ /**
+ * 获取告警区域
+ */
+ private String getAreaDes(String province, String city) {
+ String areaDes;
+ if (Constants.REGION_BEIJING.equals(province)) {
+ areaDes = "北京市";
+ } else if (Constants.REGION_SHANGHAI.equals(province)) {
+ areaDes = "上海市";
+ } else if (Constants.REGION_TIANJIN.equals(province)) {
+ areaDes = "天津市";
+ } else if (Constants.REGION_CHONGQING.equals(province)) {
+ areaDes = "重庆市";
+ } else {
+ areaDes = province + "省" + city + "市";
+ }
+
+ return areaDes;
+ }
+
+ /**
+ * 获取处置类型(1:清洗,2:黑洞,3:高防)
+ */
+ private String getOperateType(Integer disposeType) {
+ String operateType = null;
+ if (Constants.CLEANUP == disposeType) {
+ operateType = "清洗";
+ } else if (Constants.BLACKHOOL == disposeType) {
+ operateType = "流控";
+ } else if (Constants.HIDEPEND == disposeType) {
+ operateType = "黑洞";
+ }
+ return operateType;
+ }
+
+ /**
+ * 获取告警正文AlarmText
+ */
+ private String getAlarmText(EmosAlarmInfo a) {
+ String area = getAreaDes(a.getDstProvince(), a.getDstCity());
+ String operateType = getOperateType(a.getDisposeType());
+ return "攻击目的IP:" + a.getDstIp() + "," + area + "," + "处置操作:" + operateType + "," + "处置时长:" + a.getDisposeTime() + "分钟";
+ }
+
+ /**
+ * 获取告警解释AlarmExplanation
+ */
+ private String getAlarmExplanation(EmosAlarmInfo a) {
+ String operateType = getOperateType(a.getDisposeType());
+ StringBuilder srcIp = new StringBuilder();
+ for (String ip : a.getSrcIpLs()) {
+ srcIp.append(ip).append(",");
+ }
+ if (srcIp.length() > 0) {
+ srcIp = new StringBuilder(srcIp.substring(0, srcIp.length() - 1));
+ }
+ return "攻击目的IP:" + a.getDstIp() + "," + "攻击源地址:(" + srcIp + ")," + "处置操作:" + operateType + "," + "处置时长:" + a.getDisposeTime() + "分钟";
+ }
+}
diff --git a/src/main/java/com/dispose/exception/GlobalExceptionHandler.java b/src/main/java/com/dispose/exception/GlobalExceptionHandler.java
index d554a4c4..293535e7 100644
--- a/src/main/java/com/dispose/exception/GlobalExceptionHandler.java
+++ b/src/main/java/com/dispose/exception/GlobalExceptionHandler.java
@@ -69,8 +69,7 @@ public class GlobalExceptionHandler {
log.error("Interface [{}] request <{}> from {}, token = <{}>\n" +
"+++ Request: {}\n" +
"--- Verify params failed: {}",
- reqType, reqPath, reqIp, reqToken, Helper.inputStream2String(req.getInputStream()),
- sb.toString());
+ reqType, reqPath, reqIp, reqToken, Helper.inputStream2String(req.getInputStream()), sb);
} catch (Exception ignored) {
}
diff --git a/src/main/java/com/dispose/config/AuthConfigure.java b/src/main/java/com/dispose/interceptor/AuthConfigureFilter.java
similarity index 90%
rename from src/main/java/com/dispose/config/AuthConfigure.java
rename to src/main/java/com/dispose/interceptor/AuthConfigureFilter.java
index a0d58ae6..aaa63764 100644
--- a/src/main/java/com/dispose/config/AuthConfigure.java
+++ b/src/main/java/com/dispose/interceptor/AuthConfigureFilter.java
@@ -1,71 +1,70 @@
-package com.dispose.config;
-
-import com.dispose.common.AuthConfigValue;
-import com.dispose.interceptor.TokenInterceptor;
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-import javax.annotation.PostConstruct;
-import java.util.Optional;
-
-/**
- * The type Auth configure.
- *
- * @author
- */
-@Getter
-@Setter
-@Component
-@ConfigurationProperties(prefix = "auth")
-@Configuration
-public class AuthConfigure implements WebMvcConfigurer {
- /**
- * The Token timeout minute.
- */
- private Long tokenTimeoutMinute;
-
- /**
- * The Verify request token.
- */
- private Boolean verifyRequestToken;
-
- /**
- * Init global value.
- */
- @PostConstruct
- private void initGlobalValue() {
- AuthConfigValue.TOKEN_EXPIRED_TIME_MS =
- Optional.of(tokenTimeoutMinute * 60 * 1000).orElse((long) 30 * 60 * 1000);
- AuthConfigValue.VERIFY_REQUEST_TOKEN = Optional.ofNullable(verifyRequestToken).orElse(true);
- }
-
- /**
- * Init auth interceptor token interceptor.
- *
- * @return the token interceptor
- */
- @Bean
- public TokenInterceptor initAuthInterceptor() {
- return new TokenInterceptor();
- }
-
- /**
- * Add interceptors.
- *
- * @param registry the registry
- */
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- // 注册需要检查token的控制器接口
- registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/auth/logout");
- registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/manager/**");
- registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/task/**");
- registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/info/**");
- }
-}
+package com.dispose.interceptor;
+
+import com.dispose.common.AuthConfigValue;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import javax.annotation.PostConstruct;
+import java.util.Optional;
+
+/**
+ * The type Auth configure.
+ *
+ * @author
+ */
+@Getter
+@Setter
+@Component
+@ConfigurationProperties(prefix = "auth")
+@Configuration
+public class AuthConfigureFilter implements WebMvcConfigurer {
+ /**
+ * The Token timeout minute.
+ */
+ private Long tokenTimeoutMinute;
+
+ /**
+ * The Verify request token.
+ */
+ private Boolean verifyRequestToken;
+
+ /**
+ * Init global value.
+ */
+ @PostConstruct
+ private void initGlobalValue() {
+ AuthConfigValue.TOKEN_EXPIRED_TIME_MS =
+ Optional.of(tokenTimeoutMinute * 60 * 1000).orElse((long) 30 * 60 * 1000);
+ AuthConfigValue.VERIFY_REQUEST_TOKEN = Optional.ofNullable(verifyRequestToken).orElse(true);
+ }
+
+ /**
+ * Init auth interceptor token interceptor.
+ *
+ * @return the token interceptor
+ */
+ @Bean
+ public TokenInterceptor initAuthInterceptor() {
+ return new TokenInterceptor();
+ }
+
+ /**
+ * Add interceptors.
+ *
+ * @param registry the registry
+ */
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ // 注册需要检查token的控制器接口
+ registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/auth/logout");
+ registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/manager/**");
+ registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/task/**");
+ registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/info/**");
+ }
+}
diff --git a/src/main/java/com/dispose/manager/AlarmInfoManager.java b/src/main/java/com/dispose/manager/AlarmInfoManager.java
new file mode 100644
index 00000000..65bb579d
--- /dev/null
+++ b/src/main/java/com/dispose/manager/AlarmInfoManager.java
@@ -0,0 +1,17 @@
+package com.dispose.manager;
+
+import com.dispose.pojo.entity.AlarmInformation;
+
+/**
+ * The interface alarm information manager.
+ *
+ * @author
+ */
+public interface AlarmInfoManager {
+ /**
+ * Add alarm information.
+ *
+ * @param alarmInformation the alarm information
+ */
+ void addAlarmInfo(AlarmInformation alarmInformation);
+}
diff --git a/src/main/java/com/dispose/manager/MsgSerialManager.java b/src/main/java/com/dispose/manager/MsgSerialManager.java
new file mode 100644
index 00000000..0ce301eb
--- /dev/null
+++ b/src/main/java/com/dispose/manager/MsgSerialManager.java
@@ -0,0 +1,25 @@
+package com.dispose.manager;
+
+import com.dispose.common.ErrorCode;
+
+/**
+ * The interface Msg serial manager.
+ *
+ * @author
+ */
+public interface MsgSerialManager {
+ /**
+ * Update msg serial number error code.
+ *
+ * @param msgSerial the msg serial
+ * @return the error code
+ */
+ ErrorCode updateMsgSerialNumber(Long msgSerial);
+
+ /**
+ * Gets max msg serial.
+ *
+ * @return the max msg serial
+ */
+ Long getMaxMsgSerial();
+}
diff --git a/src/main/java/com/dispose/manager/impl/AlarmInfoManagerImpl.java b/src/main/java/com/dispose/manager/impl/AlarmInfoManagerImpl.java
new file mode 100644
index 00000000..d953f3a7
--- /dev/null
+++ b/src/main/java/com/dispose/manager/impl/AlarmInfoManagerImpl.java
@@ -0,0 +1,34 @@
+package com.dispose.manager.impl;
+
+import com.dispose.manager.AlarmInfoManager;
+import com.dispose.mapper.AlarmInformationMapper;
+import com.dispose.pojo.entity.AlarmInformation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * The interface alarm information manager.
+ *
+ * @author
+ */
+@Component
+@Slf4j
+public class AlarmInfoManagerImpl implements AlarmInfoManager {
+ /**
+ * The alarm information mapper.
+ */
+ @Resource
+ private AlarmInformationMapper alarmInformationMapper;
+
+ /**
+ * Add alarm information.
+ *
+ * @param alarmInformation the alarm information
+ */
+ @Override
+ public void addAlarmInfo(AlarmInformation alarmInformation) {
+ alarmInformationMapper.addAlarmInfo(alarmInformation);
+ }
+}
diff --git a/src/main/java/com/dispose/manager/impl/DisposeDeviceManagerImpl.java b/src/main/java/com/dispose/manager/impl/DisposeDeviceManagerImpl.java
index b073adc4..7bdb2172 100644
--- a/src/main/java/com/dispose/manager/impl/DisposeDeviceManagerImpl.java
+++ b/src/main/java/com/dispose/manager/impl/DisposeDeviceManagerImpl.java
@@ -57,7 +57,7 @@ public class DisposeDeviceManagerImpl implements DisposeDeviceManager {
@Override
public MulReturnType addDisposeDevice(DisposeDevice dev) {
List tmpDev = disposeDeviceMapper.getDeviceByIpAndType(dev.getIpAddr(),
- dev.getDeviceType().getValue());
+ dev.getDeviceType().getValue());
for (DisposeDevice v : tmpDev) {
if (dev.getIpPort().equals(HttpType.getDefaultPort(v.getUrlType())) || dev.getIpPort()
@@ -112,7 +112,7 @@ public class DisposeDeviceManagerImpl implements DisposeDeviceManager {
fdDest.setAccessible(true);
if (!obj.equals(fdDest.get(destDev))) {
log.debug("Upgrade field [{}] value form [{}] to [{}]", fdSrc.getName(), fdDest.get(destDev),
- obj);
+ obj);
fdDest.set(destDev, obj);
}
fdDest.setAccessible(false);
@@ -135,7 +135,7 @@ public class DisposeDeviceManagerImpl implements DisposeDeviceManager {
DisposeDevice tDev = null;
// 根据Ip和设备类型获取设备
List devList = disposeDeviceMapper.getDeviceByIpAndType(dev.getIpAddr(),
- dev.getDeviceType().getValue());
+ dev.getDeviceType().getValue());
if (devList == null || devList.size() == 0) {
return new MulReturnType<>(ErrorCode.ERR_NOSUCHDEVICE, -1L);
diff --git a/src/main/java/com/dispose/manager/impl/MsgSerialManagerImpl.java b/src/main/java/com/dispose/manager/impl/MsgSerialManagerImpl.java
new file mode 100644
index 00000000..f00941a2
--- /dev/null
+++ b/src/main/java/com/dispose/manager/impl/MsgSerialManagerImpl.java
@@ -0,0 +1,50 @@
+package com.dispose.manager.impl;
+
+import com.dispose.common.ErrorCode;
+import com.dispose.manager.MsgSerialManager;
+import com.dispose.mapper.MsgSerialMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * The interface message serial manager.
+ *
+ * @author
+ */
+@Component
+@Slf4j
+public class MsgSerialManagerImpl implements MsgSerialManager {
+ /**
+ * The message serial mapper.
+ */
+ @Resource
+ private MsgSerialMapper msgSerialMapper;
+
+ /**
+ * Add user business error code.
+ *
+ * @param msgSerial the message serial
+ * @return the error code
+ */
+ @Override
+ public ErrorCode updateMsgSerialNumber(Long msgSerial) {
+ if (msgSerialMapper.updateMsgSerial(msgSerial) == 1) {
+ return ErrorCode.ERR_OK;
+ } else {
+ return ErrorCode.ERR_DATABASE;
+ }
+ }
+
+ /**
+ * get new max message serial.
+ *
+ * @return the long
+ */
+ @Override
+ public Long getMaxMsgSerial() {
+ return msgSerialMapper.getMaxMsgSerial();
+ }
+}
+
diff --git a/src/main/java/com/dispose/mapper/AlarmInformationMapper.java b/src/main/java/com/dispose/mapper/AlarmInformationMapper.java
new file mode 100644
index 00000000..78335ee4
--- /dev/null
+++ b/src/main/java/com/dispose/mapper/AlarmInformationMapper.java
@@ -0,0 +1,18 @@
+package com.dispose.mapper;
+
+import com.dispose.pojo.entity.AlarmInformation;
+
+/**
+ * The interface alarm information mapper.
+ *
+ * @author
+ */
+public interface AlarmInformationMapper {
+ /**
+ * Add alarm information.
+ *
+ * @param alarmInformation the alarm information
+ * @return the int
+ */
+ int addAlarmInfo(AlarmInformation alarmInformation);
+}
diff --git a/src/main/java/com/dispose/mapper/MsgSerialMapper.java b/src/main/java/com/dispose/mapper/MsgSerialMapper.java
new file mode 100644
index 00000000..33a63047
--- /dev/null
+++ b/src/main/java/com/dispose/mapper/MsgSerialMapper.java
@@ -0,0 +1,24 @@
+package com.dispose.mapper;
+
+/**
+ * The interface message serial mapper.
+ *
+ * @author
+ */
+public interface MsgSerialMapper {
+
+ /**
+ * Update new task int.
+ *
+ * @param msgSerial the msgSerial number
+ * @return the int
+ */
+ int updateMsgSerial(Long msgSerial);
+
+ /**
+ * get new max message serial.
+ *
+ * @return the long
+ */
+ long getMaxMsgSerial();
+}
diff --git a/src/main/java/com/dispose/pojo/dto/protocol/kafka/AlarmInfoReq.java b/src/main/java/com/dispose/pojo/dto/protocol/kafka/AlarmInfoReq.java
new file mode 100644
index 00000000..a44dd327
--- /dev/null
+++ b/src/main/java/com/dispose/pojo/dto/protocol/kafka/AlarmInfoReq.java
@@ -0,0 +1,29 @@
+package com.dispose.pojo.dto.protocol.kafka;
+
+import com.dispose.validation.group.ValidGroups;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+
+
+/**
+ * The type Login req.
+ *
+ * @author
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmInfoReq {
+ /**
+ * 告警信息.
+ */
+ @NotBlank(message = "alarmInfo 告警信息不能为空", groups = ValidGroups.ProtocolCommonValid.class)
+ private String alarmInfo;
+}
diff --git a/src/main/java/com/dispose/pojo/dto/protocol/kafka/EmosAlarmInfo.java b/src/main/java/com/dispose/pojo/dto/protocol/kafka/EmosAlarmInfo.java
new file mode 100644
index 00000000..eda909f7
--- /dev/null
+++ b/src/main/java/com/dispose/pojo/dto/protocol/kafka/EmosAlarmInfo.java
@@ -0,0 +1,89 @@
+package com.dispose.pojo.dto.protocol.kafka;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * The type Emos alarm info.
+ *
+ * @author
+ */
+@EqualsAndHashCode()
+@Data
+@Builder
+@AllArgsConstructor
+@JsonPropertyOrder({"alarmId", "dstIp", "attackType", "bpspps", "dstProvince", "dstCity", "srcIpLs", "startTime",
+ "endTime", "disposeType", "disposeTime", "maxBps", "maxPps"})
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class EmosAlarmInfo {
+ /**
+ * The Alarm id.
+ */
+ private String alarmId;
+
+ /**
+ * The Dst ip.
+ */
+ private String dstIp;
+
+ /**
+ * The Attack type.
+ */
+ private String attackType;
+
+ /**
+ * The Bpspps.
+ */
+ private String bpspps;
+
+ /**
+ * The Dst province.
+ */
+ private String dstProvince;
+
+ /**
+ * The Dst city.
+ */
+ private String dstCity;
+
+ /**
+ * The Src ip ls.
+ */
+ private List srcIpLs;
+
+ /**
+ * The Start time.
+ */
+ private String startTime;
+
+ /**
+ * The End time.
+ */
+ private String endTime;
+
+ /**
+ * The Dispose type.
+ */
+ private Integer disposeType;
+
+ /**
+ * The Dispose time.
+ */
+ private Integer disposeTime;
+
+ /**
+ * The Max bps.
+ */
+ private String maxBps;
+
+ /**
+ * The Max pps.
+ */
+ private String maxPps;
+}
diff --git a/src/main/java/com/dispose/pojo/entity/AlarmInformation.java b/src/main/java/com/dispose/pojo/entity/AlarmInformation.java
new file mode 100644
index 00000000..8606acbe
--- /dev/null
+++ b/src/main/java/com/dispose/pojo/entity/AlarmInformation.java
@@ -0,0 +1,51 @@
+package com.dispose.pojo.entity;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import tk.mybatis.mapper.annotation.KeySql;
+import tk.mybatis.mapper.annotation.NameStyle;
+import tk.mybatis.mapper.code.Style;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * The emos alarm information.
+ *
+ * @author
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Table(name = "alarm_information")
+@NameStyle(Style.normal)
+public class AlarmInformation implements Serializable {
+
+ /**
+ * The constant serialVersionUID.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * The id.
+ */
+ @Id
+ @KeySql(useGeneratedKeys = true)
+ private Long id;
+
+ /**
+ * The alarm information.
+ */
+ private String alarmInfo;
+
+ /**
+ * The creating time.
+ */
+ private String createTime;
+}
diff --git a/src/main/java/com/dispose/pojo/entity/MsgSerial.java b/src/main/java/com/dispose/pojo/entity/MsgSerial.java
new file mode 100644
index 00000000..f779b04c
--- /dev/null
+++ b/src/main/java/com/dispose/pojo/entity/MsgSerial.java
@@ -0,0 +1,46 @@
+package com.dispose.pojo.entity;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import tk.mybatis.mapper.annotation.KeySql;
+import tk.mybatis.mapper.annotation.NameStyle;
+import tk.mybatis.mapper.code.Style;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * The message serial.
+ *
+ * @author
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Table(name = "msg_serial")
+@NameStyle(Style.normal)
+public class MsgSerial implements Serializable {
+
+ /**
+ * The constant serialVersionUID.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * The id.
+ */
+ @Id
+ @KeySql(useGeneratedKeys = true)
+ private Long id;
+
+ /**
+ * The message serial.
+ */
+ private Long msgSerial;
+}
diff --git a/src/main/java/com/dispose/service/MsgSerialService.java b/src/main/java/com/dispose/service/MsgSerialService.java
new file mode 100644
index 00000000..25c7699a
--- /dev/null
+++ b/src/main/java/com/dispose/service/MsgSerialService.java
@@ -0,0 +1,27 @@
+package com.dispose.service;
+
+import com.dispose.common.ErrorCode;
+import com.dispose.pojo.po.MulReturnType;
+
+/**
+ * The interface Msg serial service.
+ *
+ * @author
+ */
+public interface MsgSerialService {
+ /**
+ * Update message serial mul return type.
+ *
+ * @param msgSerial the msg serial
+ * @return the mul return type
+ */
+ MulReturnType updateMessageSerial(Long msgSerial);
+
+ /**
+ * Gets max message serial.
+ *
+ * @return the max message serial
+ */
+ Long getMaxMessageSerial();
+
+}
diff --git a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java
index eb3cabf3..e8a8a485 100644
--- a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java
+++ b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java
@@ -1,5 +1,6 @@
package com.dispose.service.impl;
+import com.cmhi.dispose.common.CmhiDisposeTaskStatus;
import com.dispose.common.DisposeConfigValue;
import com.dispose.common.DisposeDeviceType;
import com.dispose.common.DisposeObjectType;
@@ -18,7 +19,6 @@ import com.dispose.pojo.po.AbilityInfo;
import com.dispose.pojo.po.MulReturnType;
import com.dispose.service.DeviceTaskManagerService;
import com.dispose.service.DisposeAbilityRouterService;
-import com.pengxin.dispose.common.PengXinTaskStatus;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
@@ -429,7 +429,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService {
//任务出错,设备任务状态为启动处置任务失败
deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(deviceTask.getId(),
- (long) PengXinTaskStatus.TASK_STARTED_FAILED.getValue());
+ (long) CmhiDisposeTaskStatus.TASK_STARTED_FAILED.getValue());
// 记录任务出错重试次数
deviceTaskManager.setTaskErrRetryTimes(deviceTask.getId(), 0);
@@ -596,8 +596,8 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService {
virtualDeviceTaskRun(ai, v, task);
break;
- case PENGXIN_PLATFORM:
- restfulDeviceTaskRun(ai, v, task, DisposeDeviceType.PENGXIN_PLATFORM);
+ case CMHI_PLATFORM:
+ restfulDeviceTaskRun(ai, v, task, DisposeDeviceType.CMHI_PLATFORM);
break;
case HUAWEI_PLATFORM:
@@ -681,8 +681,8 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService {
virtualDeviceTaskStop(ai, v, task);
break;
- case PENGXIN_PLATFORM:
- restfulDeviceTaskStop(ai, v, task, DisposeDeviceType.PENGXIN_PLATFORM);
+ case CMHI_PLATFORM:
+ restfulDeviceTaskStop(ai, v, task, DisposeDeviceType.CMHI_PLATFORM);
break;
case HUAWEI_PLATFORM:
diff --git a/src/main/java/com/dispose/service/impl/DisposeAbilityRouterServiceImpl.java b/src/main/java/com/dispose/service/impl/DisposeAbilityRouterServiceImpl.java
index d256506d..26f2ea2d 100644
--- a/src/main/java/com/dispose/service/impl/DisposeAbilityRouterServiceImpl.java
+++ b/src/main/java/com/dispose/service/impl/DisposeAbilityRouterServiceImpl.java
@@ -6,7 +6,7 @@ import com.dispose.ability.impl.DpTechBypassAbilityImpl;
import com.dispose.ability.impl.HaoHanAbilityImpl;
import com.dispose.ability.impl.HuaWeiAbilityImpl;
import com.dispose.ability.impl.HuaWeiFireWallAbilityImpl;
-import com.dispose.ability.impl.PengXinAbilityImpl;
+import com.dispose.ability.impl.CmhiAbilityImpl;
import com.dispose.ability.impl.UpfAbilityImpl;
import com.dispose.ability.impl.VirtualAbilityImpl;
import com.dispose.common.DisposeCapacityType;
@@ -17,6 +17,7 @@ import com.dispose.manager.DisposeDeviceManager;
import com.dispose.mapper.ServiceGroupMapper;
import com.dispose.pojo.entity.DisposeDevice;
import com.dispose.pojo.po.AbilityInfo;
+import com.dispose.security.arithmetic.CryptoHelper;
import com.dispose.service.DisposeAbilityRouterService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
@@ -91,7 +92,7 @@ public class DisposeAbilityRouterServiceImpl implements DisposeAbilityRouterServ
if (dev != null) {
return disposeAbilityMap.get(getAbilityDeviceHashKey(dev.getIpAddr(), dev.getIpPort(),
- String.valueOf(dev.getDeviceType())));
+ String.valueOf(dev.getDeviceType())));
}
return null;
@@ -121,7 +122,7 @@ public class DisposeAbilityRouterServiceImpl implements DisposeAbilityRouterServ
@Override
public void deleteDisposeDevice(DisposeDevice dev) {
String hashKey = getAbilityDeviceHashKey(dev.getIpAddr(), dev.getIpPort(),
- String.valueOf(dev.getDeviceType()));
+ String.valueOf(dev.getDeviceType()));
disposeAbilityMap.remove(hashKey);
}
@@ -165,8 +166,8 @@ public class DisposeAbilityRouterServiceImpl implements DisposeAbilityRouterServ
case HAOHAN_PLATFORM:
db = new HaoHanAbilityImpl();
break;
- case PENGXIN_PLATFORM:
- db = new PengXinAbilityImpl();
+ case CMHI_PLATFORM:
+ db = new CmhiAbilityImpl();
break;
case HUAWEI_PLATFORM:
db = new HuaWeiAbilityImpl();
@@ -190,11 +191,12 @@ public class DisposeAbilityRouterServiceImpl implements DisposeAbilityRouterServ
}
// 初始化设备
+ dev.setPassword(new String(CryptoHelper.base64Decryption(dev.getPassword())));
db.initDeviceEnv(url, dev.getUserName(), dev.getPassword());
db.getDisposeDeviceProtectObject();
String hashKey = getAbilityDeviceHashKey(dev.getIpAddr(), dev.getIpPort(),
- String.valueOf(dev.getDeviceType()));
+ String.valueOf(dev.getDeviceType()));
// 缓存处置设备到Hash表中
disposeAbilityMap.put(hashKey, AbilityInfo.builder()
@@ -256,7 +258,7 @@ public class DisposeAbilityRouterServiceImpl implements DisposeAbilityRouterServ
if (dev == null || !dev.getStatus().equals(ObjectStatus.NORMAL)) {
String hashKey = getAbilityDeviceHashKey(v.getDev().getIpAddr(), v.getDev().getIpPort(),
- String.valueOf(v.getDev().getDeviceType()));
+ String.valueOf(v.getDev().getDeviceType()));
disposeAbilityMap.remove(hashKey);
} else {
diff --git a/src/main/java/com/dispose/service/impl/MsgSerialServiceImpl.java b/src/main/java/com/dispose/service/impl/MsgSerialServiceImpl.java
new file mode 100644
index 00000000..263346f6
--- /dev/null
+++ b/src/main/java/com/dispose/service/impl/MsgSerialServiceImpl.java
@@ -0,0 +1,56 @@
+package com.dispose.service.impl;
+
+import com.dispose.common.ErrorCode;
+import com.dispose.manager.MsgSerialManager;
+import com.dispose.pojo.po.MulReturnType;
+import com.dispose.service.MsgSerialService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * The type Msg serial service.
+ *
+ * @author
+ */
+@Service
+public class MsgSerialServiceImpl implements MsgSerialService {
+ /**
+ * The Msg serial manager.
+ */
+ @Resource
+ private MsgSerialManager msgSerialManager;
+
+ /**
+ * Update message serial mul return type.
+ *
+ * @param msgSerial the msg serial
+ * @return the mul return type
+ */
+ @Override
+ public MulReturnType updateMessageSerial(Long msgSerial) {
+ //告警序号的最大值2^32-1
+ long indexEnd = 4294967295L;
+ long indexStart = 1L;
+ //编号从1开始,以实时消息发布通道为单位进行编号。如果编号超过最大正整数(2^32-1),重新从1开始编号。
+ if (msgSerial > indexEnd) {
+ msgSerial = indexStart;
+ }
+
+ if (msgSerialManager.updateMsgSerialNumber(msgSerial) == ErrorCode.ERR_OK) {
+ return new MulReturnType<>(ErrorCode.ERR_OK, msgSerial);
+ } else {
+ return new MulReturnType<>(ErrorCode.ERR_DATABASE, null);
+ }
+ }
+
+ /**
+ * Gets max message serial.
+ *
+ * @return the max message serial
+ */
+ @Override
+ public Long getMaxMessageSerial() {
+ return msgSerialManager.getMaxMsgSerial();
+ }
+}
diff --git a/src/main/java/com/dispose/validation/valids/impl/ValidAddCapacityInfoImpl.java b/src/main/java/com/dispose/validation/valids/impl/ValidAddCapacityInfoImpl.java
index 9a69db5c..f6799acc 100644
--- a/src/main/java/com/dispose/validation/valids/impl/ValidAddCapacityInfoImpl.java
+++ b/src/main/java/com/dispose/validation/valids/impl/ValidAddCapacityInfoImpl.java
@@ -81,7 +81,7 @@ public class ValidAddCapacityInfoImpl implements ConstraintValidator v.getValue().equals(addCapacityInfo.getIpType()))) {
List val = Arrays.stream(IpAddrType.values()).map(IpAddrType::getValue).collect(Collectors.toList());
- errMsg.add("字段 ipType 值 {}, 错误, 合理取值范围为:" + val.toString());
+ errMsg.add("字段 ipType 值 {}, 错误, 合理取值范围为:" + val);
ret = false;
}
@@ -106,7 +106,7 @@ public class ValidAddCapacityInfoImpl implements ConstraintValidator
+
+
+
+
+
+
+
+
+
+ INSERT
+ IGNORE INTO alarm_information(alarmInfo)
+ VALUES (
+ #{alarmInfo}
+ )
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mappers/DeviceTask.xml b/src/main/resources/mappers/DeviceTask.xml
index 5a1bca55..63e30ae5 100644
--- a/src/main/resources/mappers/DeviceTask.xml
+++ b/src/main/resources/mappers/DeviceTask.xml
@@ -150,9 +150,9 @@
SELECT dt.*, dd.*
FROM device_task dt
LEFT JOIN dispose_device dd ON dt.deviceId = dd.id
- WHERE dd.deviceType = ${@com.dispose.common.DisposeDeviceType@PENGXIN_PLATFORM.getValue()}
- AND dt.devStatus != ${@com.pengxin.dispose.common.PengXinTaskStatus@TASK_FINISHED_USER.getValue()}
- AND dt.devStatus != ${@com.pengxin.dispose.common.PengXinTaskStatus@TASK_FINISHED_TIME.getValue()}
- AND dt.devStatus != ${@com.pengxin.dispose.common.PengXinTaskStatus@TASK_REVIEWED_FAILED.getValue()}
+ WHERE dd.deviceType = ${@com.dispose.common.DisposeDeviceType@CMHI_PLATFORM.getValue()}
+ AND dt.devStatus != ${@com.cmhi.dispose.common.CmhiDisposeTaskStatus@TASK_FINISHED_USER.getValue()}
+ AND dt.devStatus != ${@com.cmhi.dispose.common.CmhiDisposeTaskStatus@TASK_FINISHED_TIME.getValue()}
+ AND dt.devStatus != ${@com.cmhi.dispose.common.CmhiDisposeTaskStatus@TASK_REVIEWED_FAILED.getValue()}
\ No newline at end of file
diff --git a/src/main/resources/mappers/MsgSerial.xml b/src/main/resources/mappers/MsgSerial.xml
new file mode 100644
index 00000000..14aa6d8e
--- /dev/null
+++ b/src/main/resources/mappers/MsgSerial.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+ UPDATE
+ msg_serial
+ SET msgSerial = #{msgSerial}
+ WHERE id = 1;
+
+
+
+
\ No newline at end of file
diff --git a/src/test/java/com/dispose/test/dev/controller/KafkaControllerTest.java b/src/test/java/com/dispose/test/dev/controller/KafkaControllerTest.java
new file mode 100644
index 00000000..6521d0c3
--- /dev/null
+++ b/src/test/java/com/dispose/test/dev/controller/KafkaControllerTest.java
@@ -0,0 +1,126 @@
+package com.dispose.test.dev.controller;
+
+import cn.hutool.json.JSONObject;
+import com.dispose.common.ConstValue;
+import com.dispose.common.ErrorCode;
+import com.dispose.common.ProtoCryptoType;
+import com.dispose.pojo.dto.protocol.base.BaseRespStatus;
+import com.dispose.pojo.dto.protocol.base.ProtocolReqDTO;
+import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
+import com.dispose.pojo.dto.protocol.kafka.AlarmInfoReq;
+import com.dispose.test.dev.Global.InitTestEnvironment;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import jodd.net.HttpStatus;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.MediaType;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.annotation.Rollback;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+/**
+ * The type Auth controller test.
+ *
+ * @author
+ */
+@AutoConfigureMockMvc
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+@Transactional
+@Rollback
+@Slf4j
+public class KafkaControllerTest extends InitTestEnvironment {
+ /**
+ * The Mock mvc.
+ */
+ @Resource
+ private MockMvc mockMvc;
+ /**
+ * The Object mapper.
+ */
+ @Resource
+ private ObjectMapper objectMapper;
+
+ /**
+ * A 1 login.
+ *
+ * @throws Exception the exception
+ */
+ @Test
+ public void a1_dispatchCommand() throws Exception {
+ JSONObject disposeParam = new JSONObject();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ disposeParam.set("alarmId", "1");
+ disposeParam.set("dstIp", "192.168.1.1");
+ disposeParam.set("attackType", "RSTFlood");
+ disposeParam.set("bpspps", "bps");
+ disposeParam.set("dstProvince", "浙江");
+ disposeParam.set("dstCity", "杭州");
+ disposeParam.set("startTime", sdf.format(new Date()));
+ // 1清洗,2流控,3黑洞
+ disposeParam.set("disposeType", 1);
+ disposeParam.set("disposeTime", 30);
+ disposeParam.set("endTime", sdf.format(new Date()));
+ List srcIp = new ArrayList<>();
+ srcIp.add("192.168.10.1");
+ srcIp.add("192.168.10.2");
+ disposeParam.set("srcIpLs", srcIp);
+ disposeParam.set("maxBps", "20bps");
+ disposeParam.set("maxPps", "20pps");
+ String jsonAlarmInfo = disposeParam.toString();
+ log.info("============ jsonAlarmInfo :{}", jsonAlarmInfo);
+
+ AlarmInfoReq alarmInfoReq = AlarmInfoReq.builder()
+ .alarmInfo(jsonAlarmInfo).build();
+
+ ProtocolReqDTO reqInfo = new ProtocolReqDTO<>();
+
+ reqInfo.setVer(ConstValue.Protocol.VERSION);
+ reqInfo.setCryptoType(ProtoCryptoType.CRYPTO_NONE.getCode());
+ reqInfo.setTimeStamp(System.currentTimeMillis());
+ reqInfo.setMsgContent(alarmInfoReq);
+
+ String ret = mockMvc.perform(MockMvcRequestBuilders
+ .post("/kafka/dispatchCommand")
+ .contentType(MediaType.APPLICATION_JSON)
+ .header("Authorization", ConstValue.STRING_HTTP_AUTH_HEAD + getLoginToken())
+ .content(objectMapper.writeValueAsString(reqInfo)))
+ .andDo(print()).andExpect(status().isOk())
+ .andExpect(jsonPath("$.code").value(HttpStatus.ok().status()))
+ .andReturn()
+ .getResponse()
+ .getContentAsString();
+
+ ProtocolRespDTO rspInfo = objectMapper.readValue(ret,
+ new TypeReference>() {
+ });
+
+ verifyRespProtocol(rspInfo);
+
+ log.debug(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(rspInfo));
+ Assert.assertEquals(ErrorCode.ERR_OK.getCode(), (long) rspInfo.getMsgContent().getStatus());
+ }
+}
diff --git a/src/test/java/com/dispose/test/dev/debug/demo.java b/src/test/java/com/dispose/test/dev/debug/demo.java
index f6481969..069074d5 100644
--- a/src/test/java/com/dispose/test/dev/debug/demo.java
+++ b/src/test/java/com/dispose/test/dev/debug/demo.java
@@ -1,6 +1,10 @@
package com.dispose.test.dev.debug;
+<<<<<<< HEAD
import com.fasterxml.jackson.core.type.TypeReference;
+=======
+import cn.hutool.json.JSONObject;
+>>>>>>> origin/v2.0.9_dev
import com.dispose.common.ConstValue;
import com.dispose.common.DDoSAttackType;
import com.dispose.common.DisposeConfigValue;
@@ -32,8 +36,10 @@ import java.lang.reflect.Type;
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Date;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
@@ -176,29 +182,29 @@ public class demo {
@Test
public void classEnumValue() throws JsonProcessingException {
DisposeDevice dev = DisposeDevice.builder()
- .ipAddr("10.88.77.15")
- .ipPort("")
- .deviceType(DisposeDeviceType.DPTECH_UMC)
- .areaCode(0)
- .deviceName("中移杭研实验室迪普清洗设备")
- .manufacturer("DPTech")
- .model("UMC")
- .version("5.7.13")
- .userName("admin")
- .password("UMCAdministrator")
- .urlPath("UMC/service/AbnormalFlowCleaningService")
- .urlType(HttpType.HTTP)
- .readme("实验室测试设备")
- .status(ObjectStatus.NORMAL)
- .build();
+ .ipAddr("10.88.77.15")
+ .ipPort("")
+ .deviceType(DisposeDeviceType.DPTECH_UMC)
+ .areaCode(0)
+ .deviceName("中移杭研实验室迪普清洗设备")
+ .manufacturer("DPTech")
+ .model("UMC")
+ .version("5.7.13")
+ .userName("admin")
+ .password("UMCAdministrator")
+ .urlPath("UMC/service/AbnormalFlowCleaningService")
+ .urlType(HttpType.HTTP)
+ .readme("实验室测试设备")
+ .status(ObjectStatus.NORMAL)
+ .build();
DisposeDevice dev2 = DisposeDevice.builder()
- .version("5.7.135")
- .build();
+ .version("5.7.135")
+ .build();
log.debug(new ObjectMapper()
- .writerWithDefaultPrettyPrinter()
- .writeValueAsString(upgradeDisposeDeviceProperties(dev, dev2)));
+ .writerWithDefaultPrettyPrinter()
+ .writeValueAsString(upgradeDisposeDeviceProperties(dev, dev2)));
}
/**
@@ -239,250 +245,250 @@ public class demo {
@Test
public void ipRang() {
String[] src = new String[]{"112.13.86.0-112.13.86.255", "112.13.82.0-112.13.82.255", "117.148.175.0-117.148" +
- ".175.255", "117.148.174.0-117.148.174.255", "117.148.172.0-117.148.172.255", "117.148.142.0-117.148.142" +
- ".255", "117.148.141.0-117.148.141.255", "117.148.140.0-117.148.140.255", "117.148.131.0-117.148.131.255"
- , "117.148.130.0-117.148.130.255", "117.148.129.0-117.148.129.255", "117.148.128.0-117.148.128.255", "112" +
- ".17.42.0-112.17.42.255", "112.17.41.0-112.17.41.255", "112.17.40.0-112.17.40.255", "112.17.29.0-112.17" +
- ".29.255", "112.17.28.0-112.17.28.255", "112.17.27.0-112.17.27.255", "112.17.14.0-112.17.14.255", "112.13" +
- ".218.0-112.13.218.255", "112.13.217.0-112.13.217.255", "112.13.216.0-112.13.216.255", "112.13.210.0-112" +
- ".13.210.255", "112.13.209.0-112.13.209.255", "112.13.208.0-112.13.208.255", "112.13.170.171-112.13.170" +
- ".255", "112.13.111.0-112.13.111.255", "112.13.108.0-112.13.108.255", "112.13.107.0-112.13.107.255", "112" +
- ".13.106.0-112.13.106.255", "112.13.105.0-112.13.105.255", "112.13.81.0-112.13.81.255", "112.13.87.0-112" +
- ".13.87.255", "111.2.176.0-111.2.176.7", "112.13.80.0-112.13.80.255", "112.13.83.0-112.13.83.255", "112" +
- ".13.84.0-112.13.84.255", "112.13.85.0-112.13.85.255", "112.13.170.0-112.13.170.169", "111.2.176.9-111.2" +
- ".179.255", "117.147.196.0-117.147.199.255", "183.247.240.0-183.247.255.255", "117.148.170.0-117.148.170" +
- ".255", "117.148.169.0-117.148.169.255", "112.17.43.0-112.17.43.255", "112.17.15.0-112.17.15.255", "112" +
- ".13.103.0-112.13.103.255", "112.13.97.0-112.13.97.255", "112.13.112.0-112.13.127.255", "218.205.90.0-218" +
- ".205.91.255", "218.205.88.0-218.205.88.255", "112.13.215.0-112.13.215.255", "112.13.214.0-112.13.214" +
- ".255", "112.13.212.0-112.13.212.255", "112.13.211.0-112.13.211.255", "112.13.75.0-112.13.75.63", "112.13" +
- ".67.0-112.13.67.255", "112.13.66.0-112.13.66.255", "117.148.177.0-117.148.177.255", "117.148.176.0-117" +
- ".148.176.255", "112.13.166.0-112.13.166.255", "112.17.252.0-112.17.252.255", "112.17.251.0-112.17.251" +
- ".255", "112.17.250.0-112.17.250.255", "117.148.167.0-117.148.167.255", "112.13.174.0-112.13.174.255",
- "112.13.172.0-112.13.172.255", "211.138.129.128-211.138.129.255", "112.17.0.0-112.17.7.255", "218.205.80" +
- ".0-218.205.86.255", "218.205.79.0-218.205.79.255", "218.205.78.0-218.205.78.255", "218.205.77.0-218.205" +
- ".77.255", "218.205.76.0-218.205.76.255", "218.205.74.0-218.205.74.255", "218.205.73.0-218.205.73.255",
- "218.205.72.0-218.205.72.255", "211.138.126.128-211.138.126.255", "211.138.126.112-211.138.126.127", "211" +
- ".138.126.104-211.138.126.111", "211.138.126.64-211.138.126.95", "211.138.124.0-211.138.124.255", "211" +
- ".138.120.0-211.138.123.255", "120.193.8.0-120.193.11.255", "111.1.52.0-111.1.55.255", "111.1.44.0-111.1" +
- ".47.255", "111.1.36.0-111.1.39.255", "111.1.34.0-111.1.35.255", "111.1.33.0-111.1.33.255", "111.1.16" +
- ".0-111.1.23.255", "111.0.37.0-111.0.37.255", "111.0.36.0-111.0.36.255", "111.0.35.0-111.0.35.255", "111" +
- ".0.34.0-111.0.34.255", "111.0.33.0-111.0.33.255", "111.0.32.0-111.0.32.255", "111.0.31.0-111.0.31.255",
- "111.0.30.0-111.0.30.255", "112.17.48.0-112.17.63.255", "111.3.80.0-111.3.95.255", "117.149.154.0-117.149" +
- ".154.255", "117.147.184.0-117.147.184.255", "112.17.30.0-112.17.30.255", "111.3.76.0-111.3.76.255", "111" +
- ".0.29.0-111.0.29.255", "111.0.28.0-111.0.28.255", "111.0.27.0-111.0.27.255", "111.0.26.0-111.0.26.255",
- "111.0.25.0-111.0.25.255", "111.0.24.0-111.0.24.255", "111.0.23.0-111.0.23.255", "111.0.22.0-111.0.22" +
- ".255", "218.205.75.0-218.205.75.255", "211.138.126.32-211.138.126.39", "117.148.166.0-117.148.166.255",
- "117.148.165.0-117.148.165.255", "117.148.164.0-117.148.164.255", "117.148.163.0-117.148.163.255", "117" +
- ".148.162.0-117.148.162.255", "117.148.161.0-117.148.161.255", "117.148.160.0-117.148.160.255", "112.13" +
- ".223.0-112.13.223.255", "112.13.222.0-112.13.222.255", "112.13.221.0-112.13.221.255", "112.13.220.0-112" +
- ".13.220.255", "112.13.213.0-112.13.213.255", "112.13.175.0-112.13.175.255", "112.13.173.0-112.13.173" +
- ".255", "112.13.79.0-112.13.79.255", "112.13.78.0-112.13.78.255", "112.13.77.0-112.13.77.255", "112.13.76" +
- ".0-112.13.76.255", "112.13.74.0-112.13.74.255", "112.13.73.0-112.13.73.255", "112.13.72.0-112.13.72.255"
- , "112.13.71.0-112.13.71.255", "112.13.70.0-112.13.70.255", "112.13.69.0-112.13.69.255", "112.13.68.0-112" +
- ".13.68.255", "112.13.65.0-112.13.65.255", "112.13.64.0-112.13.64.255", "111.2.184.0-111.2.184.255", "111" +
- ".1.32.0-111.1.32.255", "111.1.41.36-111.1.41.39", "111.1.41.64-111.1.41.79", "120.199.68.38-120.199.68" +
- ".38", "111.1.41.34-111.1.41.34", "111.1.41.30-111.1.41.30", "111.1.41.22-111.1.41.22", "120.199.68" +
- ".46-120.199.68.46", "120.199.68.115-120.199.68.115", "120.199.68.114-120.199.68.114", "111.1.41.252-111" +
- ".1.41.252", "111.1.41.184-111.1.41.191", "120.199.68.96-120.199.68.111", "120.199.68.93-120.199.68.93",
- "120.199.68.92-120.199.68.92", "120.199.68.91-120.199.68.91", "120.199.68.90-120.199.68.90", "111.1.41" +
- ".26-111.1.41.26", "120.199.82.6-120.199.82.6", "111.1.41.0-111.1.41.7", "111.1.41.118-111.1.41.118",
- "120.199.93.54-120.199.93.54", "111.1.41.29-111.1.41.29", "111.1.41.43-111.1.41.43", "111.1.41.42-111.1" +
- ".41.42", "120.199.80.32-120.199.80.47", "120.199.85.176-120.199.85.176", "120.199.85.184-120.199.85.191"
- , "120.199.85.183-120.199.85.183", "120.199.85.182-120.199.85.182", "120.199.85.181-120.199.85.181", "120" +
- ".199.85.180-120.199.85.180", "120.199.71.128-120.199.71.255", "120.199.85.160-120.199.85.175", "120.199" +
- ".68.122-120.199.68.122", "120.199.78.144-120.199.78.144", "120.199.90.0-120.199.90.255", "120.199.78" +
- ".145-120.199.78.145", "120.199.78.148-120.199.78.148", "120.199.78.147-120.199.78.147", "120.199.78" +
- ".151-120.199.78.151", "120.199.78.150-120.199.78.150", "120.199.78.149-120.199.78.149", "120.199.78" +
- ".146-120.199.78.146", "120.199.94.160-120.199.94.191", "120.199.69.0-120.199.69.255", "120.199.94.0-120" +
- ".199.94.127", "120.199.95.0-120.199.95.255", "120.199.79.0-120.199.79.127", "120.199.71.0-120.199.71" +
- ".127", "120.199.78.139-120.199.78.139", "120.199.78.138-120.199.78.138", "120.199.78.137-120.199.78.137"
- , "120.199.78.136-120.199.78.136", "120.199.78.135-120.199.78.135", "120.199.78.134-120.199.78.134", "120" +
- ".199.78.133-120.199.78.133", "120.199.78.132-120.199.78.132", "120.199.78.131-120.199.78.131", "120.199" +
- ".78.130-120.199.78.130", "120.199.78.141-120.199.78.141", "120.199.78.140-120.199.78.140", "111.1.42" +
- ".128-111.1.42.191", "120.199.92.64-120.199.92.127", "120.199.86.0-120.199.86.31", "120.199.85.64-120.199" +
- ".85.95", "120.199.86.192-120.199.86.255", "120.199.91.0-120.199.91.255", "120.199.92.0-120.199.92.63",
- "120.199.84.160-120.199.84.191", "120.199.84.128-120.199.84.159", "120.199.83.64-120.199.83.127", "120" +
- ".199.70.0-120.199.70.255", "120.199.85.192-120.199.85.255", "120.199.80.192-120.199.80.255", "120.199.80" +
- ".64-120.199.80.127", "120.199.80.48-120.199.80.63", "120.199.85.0-120.199.85.63", "120.199.93.64-120.199" +
- ".93.127", "111.1.41.128-111.1.41.159", "112.17.33.80-112.17.33.83", "112.17.38.112-112.17.38.127", "183" +
- ".247.184.0-183.247.184.63", "112.17.37.64-112.17.37.127", "112.17.37.128-112.17.37.255", "112.17.37" +
- ".16-112.17.37.31", "183.247.184.80-183.247.184.95", "183.247.184.96-183.247.184.127", "183.247.184" +
- ".64-183.247.184.79", "112.17.38.32-112.17.38.47", "112.17.33.0-112.17.33.7", "218.205.113.160-218.205" +
- ".113.175", "112.17.33.84-112.17.33.87", "112.17.32.128-112.17.32.143", "112.17.33.128-112.17.33.255",
- "112.17.38.128-112.17.38.255", "218.205.114.208-218.205.114.223", "112.17.32.32-112.17.32.63", "112.17.33" +
- ".16-112.17.33.31", "112.17.38.0-112.17.38.15", "218.205.114.252-218.205.114.252", "218.205.113.190-218" +
- ".205.113.190", "218.205.113.189-218.205.113.189", "218.205.113.188-218.205.113.188", "218.205.113" +
- ".187-218.205.113.187", "218.205.113.186-218.205.113.186", "218.205.113.200-218.205.113.200", "218.205" +
- ".113.202-218.205.113.202", "112.17.33.8-112.17.33.11", "112.17.33.12-112.17.33.15", "218.205.113.222-218" +
- ".205.113.222", "218.205.113.251-218.205.113.251", "183.247.184.158-183.247.184.158", "112.17.37.8-112.17" +
- ".37.15", "183.247.184.143-183.247.184.143", "112.17.32.64-112.17.32.95", "112.17.32.104-112.17.32.111",
- "218.205.113.16-218.205.113.31", "112.17.33.96-112.17.33.111", "112.17.38.80-112.17.38.95", "112.17.33" +
- ".88-112.17.33.95", "112.17.32.96-112.17.32.99", "112.17.33.32-112.17.33.63", "218.205.114.192-218.205" +
- ".114.207", "218.205.114.247-218.205.114.247", "183.247.184.192-183.247.184.255", "183.247.184.139-183" +
- ".247.184.139", "183.247.184.136-183.247.184.136", "218.205.113.8-218.205.113.15", "183.247.184.133-183" +
- ".247.184.133", "112.17.35.120-112.17.35.123", "112.17.36.0-112.17.36.127", "218.205.115.192-218.205.115" +
- ".255", "112.17.36.160-112.17.36.167", "112.17.36.128-112.17.36.159", "218.205.113.247-218.205.113.247",
- "218.205.113.254-218.205.113.254", "111.3.71.35-111.3.71.35", "111.3.71.7-111.3.71.7", "111.3.71.128-111" +
- ".3.71.159", "111.3.71.36-111.3.71.36", "111.3.71.37-111.3.71.37", "111.3.71.38-111.3.71.38", "111.3.71" +
- ".34-111.3.71.34", "112.15.32.0-112.15.32.255", "112.15.31.128-112.15.31.255", "112.15.29.0-112.15.29" +
- ".255", "112.15.28.0-112.15.28.255", "112.15.31.0-112.15.31.63", "112.15.30.0-112.15.30.255", "218.205" +
- ".121.0-218.205.121.127", "218.205.120.0-218.205.120.255", "218.205.121.128-218.205.121.255", "218.205" +
- ".119.36-218.205.119.39", "218.205.123.65-218.205.123.65", "218.205.123.66-218.205.123.66", "218.205.123" +
- ".67-218.205.123.67", "218.205.123.68-218.205.123.68", "218.205.123.69-218.205.123.69", "218.205.123" +
- ".70-218.205.123.70", "112.15.37.128-112.15.37.191", "112.15.38.208-112.15.38.223", "112.15.38.224-112.15" +
- ".38.255", "117.149.150.0-117.149.150.31", "218.205.123.109-218.205.123.109", "218.205.123.17-218.205.123" +
- ".17", "218.205.123.90-218.205.123.90", "117.149.150.114-117.149.150.114", "117.149.150.115-117.149.150" +
- ".115", "117.149.150.116-117.149.150.116", "117.149.150.117-117.149.150.117", "117.149.150.118-117.149" +
- ".150.118", "117.149.150.119-117.149.150.119", "117.149.150.120-117.149.150.120", "117.149.150.121-117" +
- ".149.150.121", "111.1.70.146-111.1.70.146", "111.1.70.147-111.1.70.147", "218.205.123.140-218.205.123" +
- ".140", "218.205.123.141-218.205.123.141", "218.205.123.72-218.205.123.79", "218.205.123.80-218.205.123" +
- ".83", "218.205.123.86-218.205.123.86", "218.205.123.98-218.205.123.98", "218.205.123.99-218.205.123.99",
- "112.15.1.0-112.15.1.255", "112.15.2.0-112.15.2.255", "112.15.3.0-112.15.3.255", "112.15.36.0-112.15.36" +
- ".255", "112.15.37.0-112.15.37.127", "117.149.150.32-117.149.150.35", "117.149.150.36-117.149.150.39",
- "117.149.150.40-117.149.150.47", "117.149.150.48-117.149.150.51", "117.149.150.52-117.149.150.55", "117" +
- ".149.150.56-117.149.150.59", "117.149.144.67-117.149.144.67", "117.149.150.102-117.149.150.102", "117" +
- ".149.150.103-117.149.150.103", "117.149.150.122-117.149.150.122", "117.149.150.123-117.149.150.123",
- "117.149.150.124-117.149.150.124", "117.149.151.0-117.149.151.255", "218.205.123.0-218.205.123.7", "117" +
- ".149.150.98-117.149.150.98", "218.205.123.30-218.205.123.30", "111.1.163.0-111.1.163.255", "111.1.162" +
- ".128-111.1.162.159", "111.1.162.0-111.1.162.127", "111.1.175.0-111.1.175.255", "111.1.166.0-111.1.166" +
- ".255", "111.1.167.0-111.1.167.127", "111.1.169.0-111.1.169.255", "111.1.170.0-111.1.170.255", "111.1.160" +
- ".0-111.1.160.255", "111.1.161.0-111.1.161.255", "111.1.162.175-111.1.162.175", "111.1.173.0-111.1.173" +
- ".255", "111.1.162.160-111.1.162.167", "120.199.88.30-120.199.88.30", "117.148.171.0-117.148.171.255",
- "117.148.168.0-117.148.168.255", "117.148.143.0-117.148.143.255", "211.140.21.112-211.140.21.119", "111.1" +
- ".60.0-111.1.60.255", "112.13.169.0-112.13.169.255", "112.13.168.0-112.13.168.255", "218.205.95.0-218.205" +
- ".95.255", "218.205.94.0-218.205.94.255", "218.205.93.0-218.205.93.255", "218.205.92.0-218.205.92.255",
- "112.17.26.0-112.17.26.255", "112.17.13.0-112.17.13.255", "112.17.11.0-112.17.11.255", "112.17.10.0-112" +
- ".17.10.255", "112.17.12.0-112.17.12.255", "112.17.9.0-112.17.9.255", "112.17.8.0-112.17.8.255", "211.138" +
- ".113.0-211.138.113.255", "211.140.23.0-211.140.23.255", "111.1.63.0-111.1.63.255", "111.1.62.0-111.1.62" +
- ".255", "111.1.61.0-111.1.61.255", "111.1.59.0-111.1.59.188", "111.1.58.0-111.1.58.255", "111.1.57.0-111" +
- ".1.57.255", "111.1.56.0-111.1.56.255", "111.1.51.0-111.1.51.255", "111.1.50.0-111.1.50.255", "111.1.48" +
- ".0-111.1.48.255", "111.1.49.0-111.1.49.97", "111.1.59.190-111.1.59.255", "221.131.216.0-221.131.216.255"
- , "111.2.186.0-111.2.186.255", "111.2.185.0-111.2.185.255", "111.2.183.0-111.2.183.255", "111.2.182.0-111" +
- ".2.182.255", "111.2.181.0-111.2.181.255", "111.2.180.0-111.2.180.255", "112.13.207.0-112.13.207.255",
- "112.13.206.0-112.13.206.255", "112.13.205.0-112.13.205.255", "112.13.204.0-112.13.204.255", "112.13.203" +
- ".0-112.13.203.255", "112.13.202.0-112.13.202.255", "112.13.201.0-112.13.201.255", "112.13.200.0-112.13" +
- ".200.255", "112.13.199.0-112.13.199.255", "112.13.198.0-112.13.198.255", "112.13.197.0-112.13.197.255",
- "112.13.196.0-112.13.196.255", "112.13.195.0-112.13.195.255", "112.13.194.0-112.13.194.255", "112.13.193" +
- ".0-112.13.193.255", "211.138.112.0-211.138.112.255", "112.13.93.0-112.13.93.255", "112.13.110.0-112.13" +
- ".110.255", "112.13.95.0-112.13.95.255", "112.13.91.0-112.13.91.255", "112.13.89.0-112.13.89.255", "112" +
- ".13.88.0-112.13.88.255", "112.13.109.0-112.13.109.255", "112.13.100.0-112.13.100.255", "112.13.99.0-112" +
- ".13.99.255", "112.13.98.0-112.13.98.255", "117.142.240.214-117.142.240.214", "117.142.240.213-117.142" +
- ".240.213", "117.142.240.212-117.142.240.212", "112.13.171.0-112.13.171.255", "112.13.102.0-112.13.102" +
- ".255", "112.13.101.0-112.13.101.255", "112.13.96.0-112.13.96.255", "112.13.94.0-112.13.94.255", "112.13" +
- ".92.0-112.13.92.255", "112.13.90.0-112.13.90.255", "111.3.72.144-111.3.72.159", "111.3.72.160-111.3.72" +
- ".191", "111.3.72.192-111.3.72.193", "218.205.117.2-218.205.117.2", "111.3.72.138-111.3.72.138", "218.205" +
- ".117.98-218.205.117.98", "218.205.117.114-218.205.117.114", "218.205.117.115-218.205.117.115", "218.205" +
- ".117.116-218.205.117.116", "111.3.72.194-111.3.72.195", "111.3.72.196-111.3.72.199", "111.3.72.200-111.3" +
- ".72.207", "111.3.72.208-111.3.72.223", "111.3.72.224-111.3.72.255", "183.246.192.0-183.246.192.255",
- "183.246.193.0-183.246.193.1", "218.205.117.14-218.205.117.14", "218.205.117.22-218.205.117.22", "218.205" +
- ".117.74-218.205.117.74", "111.3.72.142-111.3.72.142", "183.246.193.14-183.246.193.14", "218.205.117" +
- ".82-218.205.117.82", "218.205.117.90-218.205.117.90", "218.205.117.94-218.205.117.94", "218.205.117" +
- ".102-218.205.117.102", "218.205.117.122-218.205.117.122", "111.3.72.130-111.3.72.130", "111.3.72.131-111" +
- ".3.72.131", "111.3.72.129-111.3.72.129", "218.205.117.126-218.205.117.126", "218.205.117.26-218.205.117" +
- ".26", "218.205.117.58-218.205.117.58", "218.205.117.62-218.205.117.62", "218.205.117.66-218.205.117.66",
- "218.205.117.70-218.205.117.70", "218.205.117.54-218.205.117.54", "218.205.117.36-218.205.117.39", "218" +
- ".205.117.32-218.205.117.35", "218.205.117.128-218.205.117.255", "218.205.117.4-218.205.117.7", "218.205" +
- ".117.76-218.205.117.79", "218.205.124.128-218.205.124.159", "218.205.124.100-218.205.124.103", "218.205" +
- ".124.64-218.205.124.79", "218.205.124.80-218.205.124.83", "218.205.124.244-218.205.124.247", "218.205" +
- ".124.84-218.205.124.87", "218.205.124.28-218.205.124.31", "218.205.124.8-218.205.124.15", "218.205.124" +
- ".48-218.205.124.63", "218.205.124.192-218.205.124.223", "218.205.124.160-218.205.124.191", "218.205.124" +
- ".0-218.205.124.7", "218.205.124.16-218.205.124.19", "218.205.125.128-218.205.125.255", "218.205.125" +
- ".96-218.205.125.127", "120.199.74.4-120.199.74.12", "120.199.74.2-120.199.74.2", "120.199.73.154-120.199" +
- ".73.157", "112.15.173.46-112.15.173.46", "111.1.43.64-111.1.43.79", "111.1.43.30-111.1.43.30", "111.1.43" +
- ".26-111.1.43.26", "111.1.43.2-111.1.43.2", "111.1.43.154-111.1.43.155", "111.1.43.146-111.1.43.150",
- "111.1.43.14-111.1.43.14", "111.1.40.82-111.1.40.84", "111.1.40.190-111.1.40.190", "111.1.40.66-111.1.40" +
- ".75", "111.1.40.186-111.1.40.186", "111.1.40.182-111.1.40.182", "111.1.40.162-111.1.40.162", "111.1.40" +
- ".128-111.1.40.159", "111.1.40.0-111.1.40.7", "111.1.3.74-111.1.3.75", "111.1.3.66-111.1.3.66", "111.1.3" +
- ".208-111.1.3.223", "111.1.3.195-111.1.3.195", "111.1.3.176-111.1.3.191", "111.1.3.170-111.1.3.173", "111" +
- ".1.3.128-111.1.3.159", "111.1.3.122-111.1.3.123", "111.1.3.0-111.1.3.31", "111.1.2.98-111.1.2.99", "111" +
- ".1.2.64-111.1.2.79", "111.1.2.58-111.1.2.62", "111.1.2.202-111.1.2.206", "111.1.2.18-111.1.2.30", "111.1" +
- ".2.155-111.1.2.155", "111.1.2.146-111.1.2.146", "111.1.2.100-111.1.2.126", "111.1.2.0-111.1.2.15", "111" +
- ".1.1.90-111.1.1.90", "111.1.1.82-111.1.1.84", "111.1.1.50-111.1.1.53", "111.1.1.238-111.1.1.238", "111.1" +
- ".1.234-111.1.1.234", "111.1.1.187-111.1.1.197", "111.1.1.106-111.1.1.107", "111.1.0.98-111.1.0.99", "111" +
- ".1.0.166-111.1.0.166", "111.1.0.160-111.1.0.163", "111.1.0.101-111.1.0.155", "111.1.0.100-111.1.0.100",
- "112.12.89.128-112.12.89.191", "112.12.88.0-112.12.88.255", "112.12.6.128-112.12.6.255", "112.12.58" +
- ".20-112.12.58.20", "112.12.58.18-112.12.58.18", "112.12.58.0-112.12.58.15", "112.12.31.144-112.12.31" +
- ".159", "112.12.26.128-112.12.26.255", "112.12.18.64-112.12.18.95", "112.12.18.128-112.12.18.255", "112" +
- ".12.18.0-112.12.18.63", "112.12.15.128-112.12.15.191", "112.12.125.0-112.12.125.255", "111.2.127.0-111.2" +
- ".127.255", "111.2.122.0-111.2.122.63", "111.1.9.0-111.1.9.255", "111.1.8.68-111.1.8.79", "111.1.8.48-111" +
- ".1.8.61", "111.1.8.4-111.1.8.15", "111.1.8.36-111.1.8.47", "111.1.8.242-111.1.8.251", "111.1.8.173-111.1" +
- ".8.174", "111.1.8.17-111.1.8.28", "111.1.8.164-111.1.8.172", "111.1.8.142-111.1.8.145", "111.1.8.132-111" +
- ".1.8.134", "111.1.8.123-111.1.8.126", "111.1.8.118-111.1.8.118", "111.1.8.115-111.1.8.116", "111.1.8" +
- ".113-111.1.8.113", "111.1.8.111-111.1.8.111", "111.1.8.107-111.1.8.107", "111.1.8.103-111.1.8.103", "111" +
- ".1.10.0-111.1.10.255", "117.149.36.104-117.149.36.107", "112.17.25.0-112.17.25.255", "112.17.24.128-112" +
- ".17.24.255", "112.17.24.0-112.17.24.127", "223.95.61.0-223.95.61.255", "223.95.60.0-223.95.60.255", "223" +
- ".95.58.0-223.95.59.255", "223.95.56.0-223.95.56.255", "223.95.33.0-223.95.33.127", "223.94.74.0-223.94" +
- ".74.255", "223.94.66.128-223.94.66.255", "211.140.141.94-211.140.141.94", "211.140.141.67-211.140.141" +
- ".77", "211.140.141.47-211.140.141.47", "211.140.141.214-211.140.141.214", "211.140.141.206-211.140.141" +
- ".206", "211.140.141.204-211.140.141.204", "211.140.141.179-211.140.141.179", "211.140.141.153-211.140" +
- ".141.153", "211.140.140.50-211.140.140.50", "211.140.140.48-211.140.140.48", "211.140.140.38-211.140.140" +
- ".38", "211.140.138.8-211.140.138.9", "211.140.138.28-211.140.138.28", "211.140.138.2-211.140.138.5",
- "211.140.138.146-211.140.138.146", "211.140.138.10-211.140.138.12", "183.248.129.0-183.248.129.255", "183" +
- ".248.128.0-183.248.128.255", "123.58.140.0-123.58.143.255", "117.149.39.96-117.149.39.127", "117.149.39" +
- ".64-117.149.39.95", "117.149.39.160-117.149.39.191", "117.149.39.128-117.149.39.159", "117.149.39.0-117" +
- ".149.39.63", "117.149.38.192-117.149.38.255", "117.149.38.0-117.149.38.63", "117.149.37.128-117.149.37" +
- ".255", "117.149.37.0-117.149.37.127", "117.149.36.128-117.149.36.255", "111.1.26.128-111.1.26.255", "111" +
- ".1.26.0-111.1.26.127", "111.1.25.98-111.1.25.99", "111.1.25.6-111.1.25.6", "111.1.25.34-111.1.25.34",
- "111.1.25.2-111.1.25.3", "111.1.25.192-111.1.25.255", "111.1.25.16-111.1.25.31", "111.1.25.12-111.1.25" +
- ".15", "111.1.25.114-111.1.25.114", "111.1.25.106-111.1.25.110", "111.1.25.100-111.1.25.102", "111.1.25" +
- ".10-111.1.25.10", "111.1.24.128-111.1.24.255", "111.1.27.0-111.1.27.255", "111.1.5.119-111.1.5.125",
- "111.1.5.130-111.1.5.130", "111.1.5.133-111.1.5.145", "111.1.5.147-111.1.5.149", "111.1.5.152-111.1.5" +
- ".154", "111.1.5.162-111.1.5.165", "111.1.5.168-111.1.5.170", "111.1.5.172-111.1.5.179", "111.1.5.182-111" +
- ".1.5.185", "111.1.5.189-111.1.5.189", "111.1.5.19-111.1.5.19", "111.1.5.2-111.1.5.2", "111.1.5.20-111.1" +
- ".5.23", "111.1.5.25-111.1.5.25", "111.1.5.29-111.1.5.29", "111.1.5.3-111.1.5.3", "111.1.5.35-111.1.5.37"
- , "111.1.5.4-111.1.5.5", "111.1.5.50-111.1.5.59", "111.1.5.6-111.1.5.6", "111.1.5.67-111.1.5.69", "111.1" +
- ".5.77-111.1.5.77", "111.1.5.79-111.1.5.79", "111.1.5.8-111.1.5.8", "111.1.5.80-111.1.5.86", "111.1.6" +
- ".12-111.1.6.12", "111.1.6.128-111.1.6.143", "111.1.6.13-111.1.6.13", "111.1.6.147-111.1.6.147", "111.1.6" +
- ".149-111.1.6.149", "111.1.6.153-111.1.6.153", "111.1.6.156-111.1.6.158", "111.1.6.16-111.1.6.16", "111.1" +
- ".6.160-111.1.6.191", "111.1.6.18-111.1.6.19", "111.1.6.192-111.1.6.199", "111.1.6.2-111.1.6.2", "111.1.6" +
- ".200-111.1.6.216", "111.1.6.224-111.1.6.255", "111.1.6.35-111.1.6.39", "111.1.6.4-111.1.6.4", "111.1.6" +
- ".40-111.1.6.49", "111.1.6.5-111.1.6.8", "111.1.6.50-111.1.6.50", "111.1.6.84-111.1.6.85", "111.1.6" +
- ".88-111.1.6.91", "111.1.7.128-111.1.7.255", "111.3.64.0-111.3.67.255", "117.148.189.0-117.148.189.255",
- "117.148.190.0-117.148.190.63", "117.148.190.128-117.148.190.255", "117.148.191.0-117.148.191.255", "183" +
- ".245.10.0-183.245.10.255", "183.245.11.128-183.245.11.255", "183.245.12.0-183.245.12.31", "183.245.12" +
- ".32-183.245.12.35", "183.245.5.0-183.245.5.255", "183.245.6.0-183.245.9.255", "39.175.96.0-39.175.97" +
- ".255", "111.1.14.0-111.1.14.31", "111.1.14.32-111.1.14.47", "111.1.15.105-111.1.15.105", "111.1.15" +
- ".11-111.1.15.11", "111.1.15.130-111.1.15.146", "111.1.15.157-111.1.15.164", "111.1.15.198-111.1.15.200",
- "111.1.15.203-111.1.15.203", "111.1.15.240-111.1.15.255", "112.16.2.128-112.16.2.255", "112.16.224.0-112" +
- ".16.230.255", "112.16.231.128-112.16.231.255", "112.17.18.0-112.17.19.255", "117.149.194.208-117.149.194" +
- ".223", "117.149.194.224-117.149.194.255", "117.149.194.80-117.149.194.95", "117.149.195.0-117.149.195" +
- ".63", "117.149.196.0-117.149.196.127", "117.149.197.0-117.149.197.255", "117.149.198.0-117.149.198.127",
- "117.149.198.128-117.149.198.191", "117.149.198.192-117.149.198.207", "117.149.224.0-117.149.231.255",
- "117.149.232.0-117.149.232.255", "117.149.240.0-117.149.241.255", "117.149.244.0-117.149.248.255", "117" +
- ".149.249.0-117.149.249.255", "117.149.250.128-117.149.250.255", "117.149.251.128-117.149.251.255", "117" +
- ".149.251.16-117.149.251.31", "117.149.251.32-117.149.251.63", "117.149.251.8-117.149.251.15", "117.149" +
- ".252.0-117.149.252.255", "117.149.254.0-117.149.254.255", "117.149.255.124-117.149.255.131", "117.149" +
- ".255.160-117.149.255.243", "120.193.39.105-120.193.39.105", "120.193.39.11-120.193.39.11", "120.193.39" +
- ".13-120.193.39.13", "120.193.39.16-120.193.39.19", "120.193.39.21-120.193.39.21", "120.193.39.24-120.193" +
- ".39.24", "120.193.39.32-120.193.39.55", "120.193.39.5-120.193.39.8", "120.193.39.56-120.193.39.62", "120" +
- ".193.39.74-120.193.39.79", "120.193.39.80-120.193.39.90", "120.193.39.92-120.193.39.92", "120.193.39" +
- ".94-120.193.39.94", "120.193.39.96-120.193.39.96", "211.140.62.0-211.140.62.127", "211.140.62.238-211" +
- ".140.62.239", "211.140.62.242-211.140.62.243", "211.140.62.247-211.140.62.249", "221.131.255.128-221.131" +
- ".255.143", "221.131.255.16-221.131.255.31", "221.131.255.240-221.131.255.255", "221.131.255.32-221.131" +
- ".255.47", "221.131.255.64-221.131.255.95", "221.131.255.8-221.131.255.15", "221.131.255.98-221.131.255" +
- ".99", "43.240.156.0-43.240.159.255", "43.240.72.0-43.240.75.255", "43.241.16.0-43.241.19.255", "103.107" +
- ".195.0-103.107.195.255", "111.1.29.0-111.1.29.251", "111.1.30.0-111.1.30.255", "111.1.31.11-111.1.31.13"
- , "111.1.31.119-111.1.31.120", "111.1.31.132-111.1.31.135", "111.1.31.141-111.1.31.141", "111.1.31" +
- ".158-111.1.31.161", "111.1.31.164-111.1.31.165", "111.1.31.170-111.1.31.170", "111.1.31.172-111.1.31" +
- ".176", "111.1.31.180-111.1.31.181", "111.1.31.184-111.1.31.186", "111.1.31.19-111.1.31.19", "111.1.31" +
- ".196-111.1.31.200", "111.1.31.20-111.1.31.21", "111.1.31.202-111.1.31.202", "111.1.31.207-111.1.31.207",
- "111.1.31.209-111.1.31.213", "111.1.31.2-111.1.31.7", "111.1.31.221-111.1.31.224", "111.1.31.24-111.1.31" +
- ".28", "111.1.31.246-111.1.31.246", "111.1.31.30-111.1.31.30", "111.1.31.51-111.1.31.52", "111.1.31" +
- ".65-111.1.31.69", "111.1.31.74-111.1.31.74", "111.1.31.8-111.1.31.9", "111.1.31.90-111.1.31.92", "111.1" +
- ".31.99-111.1.31.101", "111.3.68.112-111.3.68.180", "111.3.68.228-111.3.68.236", "111.3.68.238-111.3.68" +
- ".238", "111.3.68.96-111.3.68.111", "111.3.69.0-111.3.69.255", "117.149.146.0-117.149.147.255", "183.131" +
- ".16.138-183.131.16.139", "183.131.16.148-183.131.16.151", "183.134.107.20-183.134.107.20", "183.134.107" +
- ".7-183.134.107.7", "183.246.188.0-183.246.188.255", "183.246.189.0-183.246.189.127", "218.205.87.94-218" +
- ".205.87.94", "112.13.170.170-112.13.170.170", "111.2.176.8-111.2.176.8", "111.1.59.189-111.1.59.189",
- "112.13.104.0-112.13.104.255", "111.1.49.98-111.1.49.98", "111.3.72.50/32", "117.149.253.197/32", "111.1" +
- ".49.100/32", "218.205.89.35/32", "117.148.173.130/32"};
+ ".175.255", "117.148.174.0-117.148.174.255", "117.148.172.0-117.148.172.255", "117.148.142.0-117.148.142" +
+ ".255", "117.148.141.0-117.148.141.255", "117.148.140.0-117.148.140.255", "117.148.131.0-117.148.131.255"
+ , "117.148.130.0-117.148.130.255", "117.148.129.0-117.148.129.255", "117.148.128.0-117.148.128.255", "112" +
+ ".17.42.0-112.17.42.255", "112.17.41.0-112.17.41.255", "112.17.40.0-112.17.40.255", "112.17.29.0-112.17" +
+ ".29.255", "112.17.28.0-112.17.28.255", "112.17.27.0-112.17.27.255", "112.17.14.0-112.17.14.255", "112.13" +
+ ".218.0-112.13.218.255", "112.13.217.0-112.13.217.255", "112.13.216.0-112.13.216.255", "112.13.210.0-112" +
+ ".13.210.255", "112.13.209.0-112.13.209.255", "112.13.208.0-112.13.208.255", "112.13.170.171-112.13.170" +
+ ".255", "112.13.111.0-112.13.111.255", "112.13.108.0-112.13.108.255", "112.13.107.0-112.13.107.255", "112" +
+ ".13.106.0-112.13.106.255", "112.13.105.0-112.13.105.255", "112.13.81.0-112.13.81.255", "112.13.87.0-112" +
+ ".13.87.255", "111.2.176.0-111.2.176.7", "112.13.80.0-112.13.80.255", "112.13.83.0-112.13.83.255", "112" +
+ ".13.84.0-112.13.84.255", "112.13.85.0-112.13.85.255", "112.13.170.0-112.13.170.169", "111.2.176.9-111.2" +
+ ".179.255", "117.147.196.0-117.147.199.255", "183.247.240.0-183.247.255.255", "117.148.170.0-117.148.170" +
+ ".255", "117.148.169.0-117.148.169.255", "112.17.43.0-112.17.43.255", "112.17.15.0-112.17.15.255", "112" +
+ ".13.103.0-112.13.103.255", "112.13.97.0-112.13.97.255", "112.13.112.0-112.13.127.255", "218.205.90.0-218" +
+ ".205.91.255", "218.205.88.0-218.205.88.255", "112.13.215.0-112.13.215.255", "112.13.214.0-112.13.214" +
+ ".255", "112.13.212.0-112.13.212.255", "112.13.211.0-112.13.211.255", "112.13.75.0-112.13.75.63", "112.13" +
+ ".67.0-112.13.67.255", "112.13.66.0-112.13.66.255", "117.148.177.0-117.148.177.255", "117.148.176.0-117" +
+ ".148.176.255", "112.13.166.0-112.13.166.255", "112.17.252.0-112.17.252.255", "112.17.251.0-112.17.251" +
+ ".255", "112.17.250.0-112.17.250.255", "117.148.167.0-117.148.167.255", "112.13.174.0-112.13.174.255",
+ "112.13.172.0-112.13.172.255", "211.138.129.128-211.138.129.255", "112.17.0.0-112.17.7.255", "218.205.80" +
+ ".0-218.205.86.255", "218.205.79.0-218.205.79.255", "218.205.78.0-218.205.78.255", "218.205.77.0-218.205" +
+ ".77.255", "218.205.76.0-218.205.76.255", "218.205.74.0-218.205.74.255", "218.205.73.0-218.205.73.255",
+ "218.205.72.0-218.205.72.255", "211.138.126.128-211.138.126.255", "211.138.126.112-211.138.126.127", "211" +
+ ".138.126.104-211.138.126.111", "211.138.126.64-211.138.126.95", "211.138.124.0-211.138.124.255", "211" +
+ ".138.120.0-211.138.123.255", "120.193.8.0-120.193.11.255", "111.1.52.0-111.1.55.255", "111.1.44.0-111.1" +
+ ".47.255", "111.1.36.0-111.1.39.255", "111.1.34.0-111.1.35.255", "111.1.33.0-111.1.33.255", "111.1.16" +
+ ".0-111.1.23.255", "111.0.37.0-111.0.37.255", "111.0.36.0-111.0.36.255", "111.0.35.0-111.0.35.255", "111" +
+ ".0.34.0-111.0.34.255", "111.0.33.0-111.0.33.255", "111.0.32.0-111.0.32.255", "111.0.31.0-111.0.31.255",
+ "111.0.30.0-111.0.30.255", "112.17.48.0-112.17.63.255", "111.3.80.0-111.3.95.255", "117.149.154.0-117.149" +
+ ".154.255", "117.147.184.0-117.147.184.255", "112.17.30.0-112.17.30.255", "111.3.76.0-111.3.76.255", "111" +
+ ".0.29.0-111.0.29.255", "111.0.28.0-111.0.28.255", "111.0.27.0-111.0.27.255", "111.0.26.0-111.0.26.255",
+ "111.0.25.0-111.0.25.255", "111.0.24.0-111.0.24.255", "111.0.23.0-111.0.23.255", "111.0.22.0-111.0.22" +
+ ".255", "218.205.75.0-218.205.75.255", "211.138.126.32-211.138.126.39", "117.148.166.0-117.148.166.255",
+ "117.148.165.0-117.148.165.255", "117.148.164.0-117.148.164.255", "117.148.163.0-117.148.163.255", "117" +
+ ".148.162.0-117.148.162.255", "117.148.161.0-117.148.161.255", "117.148.160.0-117.148.160.255", "112.13" +
+ ".223.0-112.13.223.255", "112.13.222.0-112.13.222.255", "112.13.221.0-112.13.221.255", "112.13.220.0-112" +
+ ".13.220.255", "112.13.213.0-112.13.213.255", "112.13.175.0-112.13.175.255", "112.13.173.0-112.13.173" +
+ ".255", "112.13.79.0-112.13.79.255", "112.13.78.0-112.13.78.255", "112.13.77.0-112.13.77.255", "112.13.76" +
+ ".0-112.13.76.255", "112.13.74.0-112.13.74.255", "112.13.73.0-112.13.73.255", "112.13.72.0-112.13.72.255"
+ , "112.13.71.0-112.13.71.255", "112.13.70.0-112.13.70.255", "112.13.69.0-112.13.69.255", "112.13.68.0-112" +
+ ".13.68.255", "112.13.65.0-112.13.65.255", "112.13.64.0-112.13.64.255", "111.2.184.0-111.2.184.255", "111" +
+ ".1.32.0-111.1.32.255", "111.1.41.36-111.1.41.39", "111.1.41.64-111.1.41.79", "120.199.68.38-120.199.68" +
+ ".38", "111.1.41.34-111.1.41.34", "111.1.41.30-111.1.41.30", "111.1.41.22-111.1.41.22", "120.199.68" +
+ ".46-120.199.68.46", "120.199.68.115-120.199.68.115", "120.199.68.114-120.199.68.114", "111.1.41.252-111" +
+ ".1.41.252", "111.1.41.184-111.1.41.191", "120.199.68.96-120.199.68.111", "120.199.68.93-120.199.68.93",
+ "120.199.68.92-120.199.68.92", "120.199.68.91-120.199.68.91", "120.199.68.90-120.199.68.90", "111.1.41" +
+ ".26-111.1.41.26", "120.199.82.6-120.199.82.6", "111.1.41.0-111.1.41.7", "111.1.41.118-111.1.41.118",
+ "120.199.93.54-120.199.93.54", "111.1.41.29-111.1.41.29", "111.1.41.43-111.1.41.43", "111.1.41.42-111.1" +
+ ".41.42", "120.199.80.32-120.199.80.47", "120.199.85.176-120.199.85.176", "120.199.85.184-120.199.85.191"
+ , "120.199.85.183-120.199.85.183", "120.199.85.182-120.199.85.182", "120.199.85.181-120.199.85.181", "120" +
+ ".199.85.180-120.199.85.180", "120.199.71.128-120.199.71.255", "120.199.85.160-120.199.85.175", "120.199" +
+ ".68.122-120.199.68.122", "120.199.78.144-120.199.78.144", "120.199.90.0-120.199.90.255", "120.199.78" +
+ ".145-120.199.78.145", "120.199.78.148-120.199.78.148", "120.199.78.147-120.199.78.147", "120.199.78" +
+ ".151-120.199.78.151", "120.199.78.150-120.199.78.150", "120.199.78.149-120.199.78.149", "120.199.78" +
+ ".146-120.199.78.146", "120.199.94.160-120.199.94.191", "120.199.69.0-120.199.69.255", "120.199.94.0-120" +
+ ".199.94.127", "120.199.95.0-120.199.95.255", "120.199.79.0-120.199.79.127", "120.199.71.0-120.199.71" +
+ ".127", "120.199.78.139-120.199.78.139", "120.199.78.138-120.199.78.138", "120.199.78.137-120.199.78.137"
+ , "120.199.78.136-120.199.78.136", "120.199.78.135-120.199.78.135", "120.199.78.134-120.199.78.134", "120" +
+ ".199.78.133-120.199.78.133", "120.199.78.132-120.199.78.132", "120.199.78.131-120.199.78.131", "120.199" +
+ ".78.130-120.199.78.130", "120.199.78.141-120.199.78.141", "120.199.78.140-120.199.78.140", "111.1.42" +
+ ".128-111.1.42.191", "120.199.92.64-120.199.92.127", "120.199.86.0-120.199.86.31", "120.199.85.64-120.199" +
+ ".85.95", "120.199.86.192-120.199.86.255", "120.199.91.0-120.199.91.255", "120.199.92.0-120.199.92.63",
+ "120.199.84.160-120.199.84.191", "120.199.84.128-120.199.84.159", "120.199.83.64-120.199.83.127", "120" +
+ ".199.70.0-120.199.70.255", "120.199.85.192-120.199.85.255", "120.199.80.192-120.199.80.255", "120.199.80" +
+ ".64-120.199.80.127", "120.199.80.48-120.199.80.63", "120.199.85.0-120.199.85.63", "120.199.93.64-120.199" +
+ ".93.127", "111.1.41.128-111.1.41.159", "112.17.33.80-112.17.33.83", "112.17.38.112-112.17.38.127", "183" +
+ ".247.184.0-183.247.184.63", "112.17.37.64-112.17.37.127", "112.17.37.128-112.17.37.255", "112.17.37" +
+ ".16-112.17.37.31", "183.247.184.80-183.247.184.95", "183.247.184.96-183.247.184.127", "183.247.184" +
+ ".64-183.247.184.79", "112.17.38.32-112.17.38.47", "112.17.33.0-112.17.33.7", "218.205.113.160-218.205" +
+ ".113.175", "112.17.33.84-112.17.33.87", "112.17.32.128-112.17.32.143", "112.17.33.128-112.17.33.255",
+ "112.17.38.128-112.17.38.255", "218.205.114.208-218.205.114.223", "112.17.32.32-112.17.32.63", "112.17.33" +
+ ".16-112.17.33.31", "112.17.38.0-112.17.38.15", "218.205.114.252-218.205.114.252", "218.205.113.190-218" +
+ ".205.113.190", "218.205.113.189-218.205.113.189", "218.205.113.188-218.205.113.188", "218.205.113" +
+ ".187-218.205.113.187", "218.205.113.186-218.205.113.186", "218.205.113.200-218.205.113.200", "218.205" +
+ ".113.202-218.205.113.202", "112.17.33.8-112.17.33.11", "112.17.33.12-112.17.33.15", "218.205.113.222-218" +
+ ".205.113.222", "218.205.113.251-218.205.113.251", "183.247.184.158-183.247.184.158", "112.17.37.8-112.17" +
+ ".37.15", "183.247.184.143-183.247.184.143", "112.17.32.64-112.17.32.95", "112.17.32.104-112.17.32.111",
+ "218.205.113.16-218.205.113.31", "112.17.33.96-112.17.33.111", "112.17.38.80-112.17.38.95", "112.17.33" +
+ ".88-112.17.33.95", "112.17.32.96-112.17.32.99", "112.17.33.32-112.17.33.63", "218.205.114.192-218.205" +
+ ".114.207", "218.205.114.247-218.205.114.247", "183.247.184.192-183.247.184.255", "183.247.184.139-183" +
+ ".247.184.139", "183.247.184.136-183.247.184.136", "218.205.113.8-218.205.113.15", "183.247.184.133-183" +
+ ".247.184.133", "112.17.35.120-112.17.35.123", "112.17.36.0-112.17.36.127", "218.205.115.192-218.205.115" +
+ ".255", "112.17.36.160-112.17.36.167", "112.17.36.128-112.17.36.159", "218.205.113.247-218.205.113.247",
+ "218.205.113.254-218.205.113.254", "111.3.71.35-111.3.71.35", "111.3.71.7-111.3.71.7", "111.3.71.128-111" +
+ ".3.71.159", "111.3.71.36-111.3.71.36", "111.3.71.37-111.3.71.37", "111.3.71.38-111.3.71.38", "111.3.71" +
+ ".34-111.3.71.34", "112.15.32.0-112.15.32.255", "112.15.31.128-112.15.31.255", "112.15.29.0-112.15.29" +
+ ".255", "112.15.28.0-112.15.28.255", "112.15.31.0-112.15.31.63", "112.15.30.0-112.15.30.255", "218.205" +
+ ".121.0-218.205.121.127", "218.205.120.0-218.205.120.255", "218.205.121.128-218.205.121.255", "218.205" +
+ ".119.36-218.205.119.39", "218.205.123.65-218.205.123.65", "218.205.123.66-218.205.123.66", "218.205.123" +
+ ".67-218.205.123.67", "218.205.123.68-218.205.123.68", "218.205.123.69-218.205.123.69", "218.205.123" +
+ ".70-218.205.123.70", "112.15.37.128-112.15.37.191", "112.15.38.208-112.15.38.223", "112.15.38.224-112.15" +
+ ".38.255", "117.149.150.0-117.149.150.31", "218.205.123.109-218.205.123.109", "218.205.123.17-218.205.123" +
+ ".17", "218.205.123.90-218.205.123.90", "117.149.150.114-117.149.150.114", "117.149.150.115-117.149.150" +
+ ".115", "117.149.150.116-117.149.150.116", "117.149.150.117-117.149.150.117", "117.149.150.118-117.149" +
+ ".150.118", "117.149.150.119-117.149.150.119", "117.149.150.120-117.149.150.120", "117.149.150.121-117" +
+ ".149.150.121", "111.1.70.146-111.1.70.146", "111.1.70.147-111.1.70.147", "218.205.123.140-218.205.123" +
+ ".140", "218.205.123.141-218.205.123.141", "218.205.123.72-218.205.123.79", "218.205.123.80-218.205.123" +
+ ".83", "218.205.123.86-218.205.123.86", "218.205.123.98-218.205.123.98", "218.205.123.99-218.205.123.99",
+ "112.15.1.0-112.15.1.255", "112.15.2.0-112.15.2.255", "112.15.3.0-112.15.3.255", "112.15.36.0-112.15.36" +
+ ".255", "112.15.37.0-112.15.37.127", "117.149.150.32-117.149.150.35", "117.149.150.36-117.149.150.39",
+ "117.149.150.40-117.149.150.47", "117.149.150.48-117.149.150.51", "117.149.150.52-117.149.150.55", "117" +
+ ".149.150.56-117.149.150.59", "117.149.144.67-117.149.144.67", "117.149.150.102-117.149.150.102", "117" +
+ ".149.150.103-117.149.150.103", "117.149.150.122-117.149.150.122", "117.149.150.123-117.149.150.123",
+ "117.149.150.124-117.149.150.124", "117.149.151.0-117.149.151.255", "218.205.123.0-218.205.123.7", "117" +
+ ".149.150.98-117.149.150.98", "218.205.123.30-218.205.123.30", "111.1.163.0-111.1.163.255", "111.1.162" +
+ ".128-111.1.162.159", "111.1.162.0-111.1.162.127", "111.1.175.0-111.1.175.255", "111.1.166.0-111.1.166" +
+ ".255", "111.1.167.0-111.1.167.127", "111.1.169.0-111.1.169.255", "111.1.170.0-111.1.170.255", "111.1.160" +
+ ".0-111.1.160.255", "111.1.161.0-111.1.161.255", "111.1.162.175-111.1.162.175", "111.1.173.0-111.1.173" +
+ ".255", "111.1.162.160-111.1.162.167", "120.199.88.30-120.199.88.30", "117.148.171.0-117.148.171.255",
+ "117.148.168.0-117.148.168.255", "117.148.143.0-117.148.143.255", "211.140.21.112-211.140.21.119", "111.1" +
+ ".60.0-111.1.60.255", "112.13.169.0-112.13.169.255", "112.13.168.0-112.13.168.255", "218.205.95.0-218.205" +
+ ".95.255", "218.205.94.0-218.205.94.255", "218.205.93.0-218.205.93.255", "218.205.92.0-218.205.92.255",
+ "112.17.26.0-112.17.26.255", "112.17.13.0-112.17.13.255", "112.17.11.0-112.17.11.255", "112.17.10.0-112" +
+ ".17.10.255", "112.17.12.0-112.17.12.255", "112.17.9.0-112.17.9.255", "112.17.8.0-112.17.8.255", "211.138" +
+ ".113.0-211.138.113.255", "211.140.23.0-211.140.23.255", "111.1.63.0-111.1.63.255", "111.1.62.0-111.1.62" +
+ ".255", "111.1.61.0-111.1.61.255", "111.1.59.0-111.1.59.188", "111.1.58.0-111.1.58.255", "111.1.57.0-111" +
+ ".1.57.255", "111.1.56.0-111.1.56.255", "111.1.51.0-111.1.51.255", "111.1.50.0-111.1.50.255", "111.1.48" +
+ ".0-111.1.48.255", "111.1.49.0-111.1.49.97", "111.1.59.190-111.1.59.255", "221.131.216.0-221.131.216.255"
+ , "111.2.186.0-111.2.186.255", "111.2.185.0-111.2.185.255", "111.2.183.0-111.2.183.255", "111.2.182.0-111" +
+ ".2.182.255", "111.2.181.0-111.2.181.255", "111.2.180.0-111.2.180.255", "112.13.207.0-112.13.207.255",
+ "112.13.206.0-112.13.206.255", "112.13.205.0-112.13.205.255", "112.13.204.0-112.13.204.255", "112.13.203" +
+ ".0-112.13.203.255", "112.13.202.0-112.13.202.255", "112.13.201.0-112.13.201.255", "112.13.200.0-112.13" +
+ ".200.255", "112.13.199.0-112.13.199.255", "112.13.198.0-112.13.198.255", "112.13.197.0-112.13.197.255",
+ "112.13.196.0-112.13.196.255", "112.13.195.0-112.13.195.255", "112.13.194.0-112.13.194.255", "112.13.193" +
+ ".0-112.13.193.255", "211.138.112.0-211.138.112.255", "112.13.93.0-112.13.93.255", "112.13.110.0-112.13" +
+ ".110.255", "112.13.95.0-112.13.95.255", "112.13.91.0-112.13.91.255", "112.13.89.0-112.13.89.255", "112" +
+ ".13.88.0-112.13.88.255", "112.13.109.0-112.13.109.255", "112.13.100.0-112.13.100.255", "112.13.99.0-112" +
+ ".13.99.255", "112.13.98.0-112.13.98.255", "117.142.240.214-117.142.240.214", "117.142.240.213-117.142" +
+ ".240.213", "117.142.240.212-117.142.240.212", "112.13.171.0-112.13.171.255", "112.13.102.0-112.13.102" +
+ ".255", "112.13.101.0-112.13.101.255", "112.13.96.0-112.13.96.255", "112.13.94.0-112.13.94.255", "112.13" +
+ ".92.0-112.13.92.255", "112.13.90.0-112.13.90.255", "111.3.72.144-111.3.72.159", "111.3.72.160-111.3.72" +
+ ".191", "111.3.72.192-111.3.72.193", "218.205.117.2-218.205.117.2", "111.3.72.138-111.3.72.138", "218.205" +
+ ".117.98-218.205.117.98", "218.205.117.114-218.205.117.114", "218.205.117.115-218.205.117.115", "218.205" +
+ ".117.116-218.205.117.116", "111.3.72.194-111.3.72.195", "111.3.72.196-111.3.72.199", "111.3.72.200-111.3" +
+ ".72.207", "111.3.72.208-111.3.72.223", "111.3.72.224-111.3.72.255", "183.246.192.0-183.246.192.255",
+ "183.246.193.0-183.246.193.1", "218.205.117.14-218.205.117.14", "218.205.117.22-218.205.117.22", "218.205" +
+ ".117.74-218.205.117.74", "111.3.72.142-111.3.72.142", "183.246.193.14-183.246.193.14", "218.205.117" +
+ ".82-218.205.117.82", "218.205.117.90-218.205.117.90", "218.205.117.94-218.205.117.94", "218.205.117" +
+ ".102-218.205.117.102", "218.205.117.122-218.205.117.122", "111.3.72.130-111.3.72.130", "111.3.72.131-111" +
+ ".3.72.131", "111.3.72.129-111.3.72.129", "218.205.117.126-218.205.117.126", "218.205.117.26-218.205.117" +
+ ".26", "218.205.117.58-218.205.117.58", "218.205.117.62-218.205.117.62", "218.205.117.66-218.205.117.66",
+ "218.205.117.70-218.205.117.70", "218.205.117.54-218.205.117.54", "218.205.117.36-218.205.117.39", "218" +
+ ".205.117.32-218.205.117.35", "218.205.117.128-218.205.117.255", "218.205.117.4-218.205.117.7", "218.205" +
+ ".117.76-218.205.117.79", "218.205.124.128-218.205.124.159", "218.205.124.100-218.205.124.103", "218.205" +
+ ".124.64-218.205.124.79", "218.205.124.80-218.205.124.83", "218.205.124.244-218.205.124.247", "218.205" +
+ ".124.84-218.205.124.87", "218.205.124.28-218.205.124.31", "218.205.124.8-218.205.124.15", "218.205.124" +
+ ".48-218.205.124.63", "218.205.124.192-218.205.124.223", "218.205.124.160-218.205.124.191", "218.205.124" +
+ ".0-218.205.124.7", "218.205.124.16-218.205.124.19", "218.205.125.128-218.205.125.255", "218.205.125" +
+ ".96-218.205.125.127", "120.199.74.4-120.199.74.12", "120.199.74.2-120.199.74.2", "120.199.73.154-120.199" +
+ ".73.157", "112.15.173.46-112.15.173.46", "111.1.43.64-111.1.43.79", "111.1.43.30-111.1.43.30", "111.1.43" +
+ ".26-111.1.43.26", "111.1.43.2-111.1.43.2", "111.1.43.154-111.1.43.155", "111.1.43.146-111.1.43.150",
+ "111.1.43.14-111.1.43.14", "111.1.40.82-111.1.40.84", "111.1.40.190-111.1.40.190", "111.1.40.66-111.1.40" +
+ ".75", "111.1.40.186-111.1.40.186", "111.1.40.182-111.1.40.182", "111.1.40.162-111.1.40.162", "111.1.40" +
+ ".128-111.1.40.159", "111.1.40.0-111.1.40.7", "111.1.3.74-111.1.3.75", "111.1.3.66-111.1.3.66", "111.1.3" +
+ ".208-111.1.3.223", "111.1.3.195-111.1.3.195", "111.1.3.176-111.1.3.191", "111.1.3.170-111.1.3.173", "111" +
+ ".1.3.128-111.1.3.159", "111.1.3.122-111.1.3.123", "111.1.3.0-111.1.3.31", "111.1.2.98-111.1.2.99", "111" +
+ ".1.2.64-111.1.2.79", "111.1.2.58-111.1.2.62", "111.1.2.202-111.1.2.206", "111.1.2.18-111.1.2.30", "111.1" +
+ ".2.155-111.1.2.155", "111.1.2.146-111.1.2.146", "111.1.2.100-111.1.2.126", "111.1.2.0-111.1.2.15", "111" +
+ ".1.1.90-111.1.1.90", "111.1.1.82-111.1.1.84", "111.1.1.50-111.1.1.53", "111.1.1.238-111.1.1.238", "111.1" +
+ ".1.234-111.1.1.234", "111.1.1.187-111.1.1.197", "111.1.1.106-111.1.1.107", "111.1.0.98-111.1.0.99", "111" +
+ ".1.0.166-111.1.0.166", "111.1.0.160-111.1.0.163", "111.1.0.101-111.1.0.155", "111.1.0.100-111.1.0.100",
+ "112.12.89.128-112.12.89.191", "112.12.88.0-112.12.88.255", "112.12.6.128-112.12.6.255", "112.12.58" +
+ ".20-112.12.58.20", "112.12.58.18-112.12.58.18", "112.12.58.0-112.12.58.15", "112.12.31.144-112.12.31" +
+ ".159", "112.12.26.128-112.12.26.255", "112.12.18.64-112.12.18.95", "112.12.18.128-112.12.18.255", "112" +
+ ".12.18.0-112.12.18.63", "112.12.15.128-112.12.15.191", "112.12.125.0-112.12.125.255", "111.2.127.0-111.2" +
+ ".127.255", "111.2.122.0-111.2.122.63", "111.1.9.0-111.1.9.255", "111.1.8.68-111.1.8.79", "111.1.8.48-111" +
+ ".1.8.61", "111.1.8.4-111.1.8.15", "111.1.8.36-111.1.8.47", "111.1.8.242-111.1.8.251", "111.1.8.173-111.1" +
+ ".8.174", "111.1.8.17-111.1.8.28", "111.1.8.164-111.1.8.172", "111.1.8.142-111.1.8.145", "111.1.8.132-111" +
+ ".1.8.134", "111.1.8.123-111.1.8.126", "111.1.8.118-111.1.8.118", "111.1.8.115-111.1.8.116", "111.1.8" +
+ ".113-111.1.8.113", "111.1.8.111-111.1.8.111", "111.1.8.107-111.1.8.107", "111.1.8.103-111.1.8.103", "111" +
+ ".1.10.0-111.1.10.255", "117.149.36.104-117.149.36.107", "112.17.25.0-112.17.25.255", "112.17.24.128-112" +
+ ".17.24.255", "112.17.24.0-112.17.24.127", "223.95.61.0-223.95.61.255", "223.95.60.0-223.95.60.255", "223" +
+ ".95.58.0-223.95.59.255", "223.95.56.0-223.95.56.255", "223.95.33.0-223.95.33.127", "223.94.74.0-223.94" +
+ ".74.255", "223.94.66.128-223.94.66.255", "211.140.141.94-211.140.141.94", "211.140.141.67-211.140.141" +
+ ".77", "211.140.141.47-211.140.141.47", "211.140.141.214-211.140.141.214", "211.140.141.206-211.140.141" +
+ ".206", "211.140.141.204-211.140.141.204", "211.140.141.179-211.140.141.179", "211.140.141.153-211.140" +
+ ".141.153", "211.140.140.50-211.140.140.50", "211.140.140.48-211.140.140.48", "211.140.140.38-211.140.140" +
+ ".38", "211.140.138.8-211.140.138.9", "211.140.138.28-211.140.138.28", "211.140.138.2-211.140.138.5",
+ "211.140.138.146-211.140.138.146", "211.140.138.10-211.140.138.12", "183.248.129.0-183.248.129.255", "183" +
+ ".248.128.0-183.248.128.255", "123.58.140.0-123.58.143.255", "117.149.39.96-117.149.39.127", "117.149.39" +
+ ".64-117.149.39.95", "117.149.39.160-117.149.39.191", "117.149.39.128-117.149.39.159", "117.149.39.0-117" +
+ ".149.39.63", "117.149.38.192-117.149.38.255", "117.149.38.0-117.149.38.63", "117.149.37.128-117.149.37" +
+ ".255", "117.149.37.0-117.149.37.127", "117.149.36.128-117.149.36.255", "111.1.26.128-111.1.26.255", "111" +
+ ".1.26.0-111.1.26.127", "111.1.25.98-111.1.25.99", "111.1.25.6-111.1.25.6", "111.1.25.34-111.1.25.34",
+ "111.1.25.2-111.1.25.3", "111.1.25.192-111.1.25.255", "111.1.25.16-111.1.25.31", "111.1.25.12-111.1.25" +
+ ".15", "111.1.25.114-111.1.25.114", "111.1.25.106-111.1.25.110", "111.1.25.100-111.1.25.102", "111.1.25" +
+ ".10-111.1.25.10", "111.1.24.128-111.1.24.255", "111.1.27.0-111.1.27.255", "111.1.5.119-111.1.5.125",
+ "111.1.5.130-111.1.5.130", "111.1.5.133-111.1.5.145", "111.1.5.147-111.1.5.149", "111.1.5.152-111.1.5" +
+ ".154", "111.1.5.162-111.1.5.165", "111.1.5.168-111.1.5.170", "111.1.5.172-111.1.5.179", "111.1.5.182-111" +
+ ".1.5.185", "111.1.5.189-111.1.5.189", "111.1.5.19-111.1.5.19", "111.1.5.2-111.1.5.2", "111.1.5.20-111.1" +
+ ".5.23", "111.1.5.25-111.1.5.25", "111.1.5.29-111.1.5.29", "111.1.5.3-111.1.5.3", "111.1.5.35-111.1.5.37"
+ , "111.1.5.4-111.1.5.5", "111.1.5.50-111.1.5.59", "111.1.5.6-111.1.5.6", "111.1.5.67-111.1.5.69", "111.1" +
+ ".5.77-111.1.5.77", "111.1.5.79-111.1.5.79", "111.1.5.8-111.1.5.8", "111.1.5.80-111.1.5.86", "111.1.6" +
+ ".12-111.1.6.12", "111.1.6.128-111.1.6.143", "111.1.6.13-111.1.6.13", "111.1.6.147-111.1.6.147", "111.1.6" +
+ ".149-111.1.6.149", "111.1.6.153-111.1.6.153", "111.1.6.156-111.1.6.158", "111.1.6.16-111.1.6.16", "111.1" +
+ ".6.160-111.1.6.191", "111.1.6.18-111.1.6.19", "111.1.6.192-111.1.6.199", "111.1.6.2-111.1.6.2", "111.1.6" +
+ ".200-111.1.6.216", "111.1.6.224-111.1.6.255", "111.1.6.35-111.1.6.39", "111.1.6.4-111.1.6.4", "111.1.6" +
+ ".40-111.1.6.49", "111.1.6.5-111.1.6.8", "111.1.6.50-111.1.6.50", "111.1.6.84-111.1.6.85", "111.1.6" +
+ ".88-111.1.6.91", "111.1.7.128-111.1.7.255", "111.3.64.0-111.3.67.255", "117.148.189.0-117.148.189.255",
+ "117.148.190.0-117.148.190.63", "117.148.190.128-117.148.190.255", "117.148.191.0-117.148.191.255", "183" +
+ ".245.10.0-183.245.10.255", "183.245.11.128-183.245.11.255", "183.245.12.0-183.245.12.31", "183.245.12" +
+ ".32-183.245.12.35", "183.245.5.0-183.245.5.255", "183.245.6.0-183.245.9.255", "39.175.96.0-39.175.97" +
+ ".255", "111.1.14.0-111.1.14.31", "111.1.14.32-111.1.14.47", "111.1.15.105-111.1.15.105", "111.1.15" +
+ ".11-111.1.15.11", "111.1.15.130-111.1.15.146", "111.1.15.157-111.1.15.164", "111.1.15.198-111.1.15.200",
+ "111.1.15.203-111.1.15.203", "111.1.15.240-111.1.15.255", "112.16.2.128-112.16.2.255", "112.16.224.0-112" +
+ ".16.230.255", "112.16.231.128-112.16.231.255", "112.17.18.0-112.17.19.255", "117.149.194.208-117.149.194" +
+ ".223", "117.149.194.224-117.149.194.255", "117.149.194.80-117.149.194.95", "117.149.195.0-117.149.195" +
+ ".63", "117.149.196.0-117.149.196.127", "117.149.197.0-117.149.197.255", "117.149.198.0-117.149.198.127",
+ "117.149.198.128-117.149.198.191", "117.149.198.192-117.149.198.207", "117.149.224.0-117.149.231.255",
+ "117.149.232.0-117.149.232.255", "117.149.240.0-117.149.241.255", "117.149.244.0-117.149.248.255", "117" +
+ ".149.249.0-117.149.249.255", "117.149.250.128-117.149.250.255", "117.149.251.128-117.149.251.255", "117" +
+ ".149.251.16-117.149.251.31", "117.149.251.32-117.149.251.63", "117.149.251.8-117.149.251.15", "117.149" +
+ ".252.0-117.149.252.255", "117.149.254.0-117.149.254.255", "117.149.255.124-117.149.255.131", "117.149" +
+ ".255.160-117.149.255.243", "120.193.39.105-120.193.39.105", "120.193.39.11-120.193.39.11", "120.193.39" +
+ ".13-120.193.39.13", "120.193.39.16-120.193.39.19", "120.193.39.21-120.193.39.21", "120.193.39.24-120.193" +
+ ".39.24", "120.193.39.32-120.193.39.55", "120.193.39.5-120.193.39.8", "120.193.39.56-120.193.39.62", "120" +
+ ".193.39.74-120.193.39.79", "120.193.39.80-120.193.39.90", "120.193.39.92-120.193.39.92", "120.193.39" +
+ ".94-120.193.39.94", "120.193.39.96-120.193.39.96", "211.140.62.0-211.140.62.127", "211.140.62.238-211" +
+ ".140.62.239", "211.140.62.242-211.140.62.243", "211.140.62.247-211.140.62.249", "221.131.255.128-221.131" +
+ ".255.143", "221.131.255.16-221.131.255.31", "221.131.255.240-221.131.255.255", "221.131.255.32-221.131" +
+ ".255.47", "221.131.255.64-221.131.255.95", "221.131.255.8-221.131.255.15", "221.131.255.98-221.131.255" +
+ ".99", "43.240.156.0-43.240.159.255", "43.240.72.0-43.240.75.255", "43.241.16.0-43.241.19.255", "103.107" +
+ ".195.0-103.107.195.255", "111.1.29.0-111.1.29.251", "111.1.30.0-111.1.30.255", "111.1.31.11-111.1.31.13"
+ , "111.1.31.119-111.1.31.120", "111.1.31.132-111.1.31.135", "111.1.31.141-111.1.31.141", "111.1.31" +
+ ".158-111.1.31.161", "111.1.31.164-111.1.31.165", "111.1.31.170-111.1.31.170", "111.1.31.172-111.1.31" +
+ ".176", "111.1.31.180-111.1.31.181", "111.1.31.184-111.1.31.186", "111.1.31.19-111.1.31.19", "111.1.31" +
+ ".196-111.1.31.200", "111.1.31.20-111.1.31.21", "111.1.31.202-111.1.31.202", "111.1.31.207-111.1.31.207",
+ "111.1.31.209-111.1.31.213", "111.1.31.2-111.1.31.7", "111.1.31.221-111.1.31.224", "111.1.31.24-111.1.31" +
+ ".28", "111.1.31.246-111.1.31.246", "111.1.31.30-111.1.31.30", "111.1.31.51-111.1.31.52", "111.1.31" +
+ ".65-111.1.31.69", "111.1.31.74-111.1.31.74", "111.1.31.8-111.1.31.9", "111.1.31.90-111.1.31.92", "111.1" +
+ ".31.99-111.1.31.101", "111.3.68.112-111.3.68.180", "111.3.68.228-111.3.68.236", "111.3.68.238-111.3.68" +
+ ".238", "111.3.68.96-111.3.68.111", "111.3.69.0-111.3.69.255", "117.149.146.0-117.149.147.255", "183.131" +
+ ".16.138-183.131.16.139", "183.131.16.148-183.131.16.151", "183.134.107.20-183.134.107.20", "183.134.107" +
+ ".7-183.134.107.7", "183.246.188.0-183.246.188.255", "183.246.189.0-183.246.189.127", "218.205.87.94-218" +
+ ".205.87.94", "112.13.170.170-112.13.170.170", "111.2.176.8-111.2.176.8", "111.1.59.189-111.1.59.189",
+ "112.13.104.0-112.13.104.255", "111.1.49.98-111.1.49.98", "111.3.72.50/32", "117.149.253.197/32", "111.1" +
+ ".49.100/32", "218.205.89.35/32", "117.148.173.130/32"};
String ip = "117.149.253.197";
for (String n : src) {
log.info("{} network {}contains {}", n,
- Helper.ipInRange(n, ip) ? "is " : "not ",
- ip);
+ Helper.ipInRange(n, ip) ? "is " : "not ",
+ ip);
}
}
@@ -494,8 +500,8 @@ public class demo {
String n = "0.0.0.0";
log.info("{} network {}contains {}", n,
- Helper.ipInRange(n, ip) ? "is " : "not ",
- ip);
+ Helper.ipInRange(n, ip) ? "is " : "not ",
+ ip);
}
/**
@@ -503,7 +509,7 @@ public class demo {
*/
public void haohanStartError() {
String errMsg = "[{ip=192.168.50.2, 任务名称=三方接口任务467}, {ip=192.168.50.2, 任务名称=三方接口任务468}, {ip=192.168" +
- ".50.2, 任务名称=三方接口任务470}, {ip=192.168.50.2, 任务名称=三方接口任务469}]";
+ ".50.2, 任务名称=三方接口任务470}, {ip=192.168.50.2, 任务名称=三方接口任务469}]";
String reg = "(\\[(.*?)])";
@@ -512,8 +518,8 @@ public class demo {
while (n.find()) {
log.info("\tsub items: {}", n.group(1)
- .substring(n.group(1).lastIndexOf("=") + 1)
- .replaceAll("\\D", ""));
+ .substring(n.group(1).lastIndexOf("=") + 1)
+ .replaceAll("\\D", ""));
}
}
@@ -522,11 +528,11 @@ public class demo {
*/
public void ipaddrVariety() {
String[] ipAddrs = new String[]{
- "ffff::8fff:ffff:0:ffff",
- "::1",
- "192.168.0.1",
- "192.168.00.1",
- "023.0.2.1"
+ "ffff::8fff:ffff:0:ffff",
+ "::1",
+ "192.168.0.1",
+ "192.168.00.1",
+ "023.0.2.1"
};
for (String s : ipAddrs) {
@@ -550,7 +556,7 @@ public class demo {
Map> groupMap = orgList.stream()
- .collect(Collectors.groupingBy(diffList::contains));
+ .collect(Collectors.groupingBy(diffList::contains));
log.info("Result: {}", groupMap);
}
@@ -607,12 +613,12 @@ public class demo {
* @throws NoSuchPaddingException the no such padding exception
*/
public void aes() throws IllegalBlockSizeException, InvalidKeyException, BadPaddingException,
- NoSuchAlgorithmException, NoSuchPaddingException {
+ NoSuchAlgorithmException, NoSuchPaddingException {
String plainText = "{\"disposeTime\":60,\"flowDirection\":0,\"mulDisposeIp\":[\"1.1.1.1\"],\"type\":0}";
String aesKey = "hkoUV5ZWh0q1jSxMnpjovVn19Qg99HY6DD40";
byte[] encode = CryptoHelper.aes128Encryption(plainText.getBytes(StandardCharsets.UTF_8),
- aesKey);
+ aesKey);
log.info("AES Key: {}", aesKey);
log.info("Src: {}", plainText);
log.info("AES256: {}", CryptoHelper.base64Encryption(encode));
@@ -628,9 +634,9 @@ public class demo {
* @throws NoSuchPaddingException the no such padding exception
*/
public void aesdec() throws IllegalBlockSizeException, InvalidKeyException, BadPaddingException,
- NoSuchAlgorithmException, NoSuchPaddingException {
+ NoSuchAlgorithmException, NoSuchPaddingException {
String plainText = "6PgUrZa8zZUzDAxAFpV307JfUDVI1gFNo3ZFT7LKtVzRXc3UbwFh6+5i6" +
- "+667frPR5j1p0XOG1i7Nhy85uHUDWUBZUxHF3vXNkgiKtbWLHw=";
+ "+667frPR5j1p0XOG1i7Nhy85uHUDWUBZUxHF3vXNkgiKtbWLHw=";
String aesKey = "hkoUV5ZWh0q1jSxMnpjovVn19Qg99HY6DD40";
@@ -709,14 +715,40 @@ public class demo {
*/
@Test
public void ipPortMatchTest() {
- String[] srcPort = new String[] {"", "80", "443", "81", null};
- String[] dstPort = new String[] {"", "80", "443", "81", null};
+ String[] srcPort = new String[]{"", "80", "443", "81", null};
+ String[] dstPort = new String[]{"", "80", "443", "81", null};
- for(String s : srcPort) {
- for(String d : dstPort) {
+ for (String s : srcPort) {
+ for (String d : dstPort) {
log.info("HTTP: [{}] match [{}] is {}", s, d, Helper.isIpPortMatch(s, d, HttpType.HTTP));
log.info("HTTPS: [{}] match [{}] is {}", s, d, Helper.isIpPortMatch(s, d, HttpType.HTTPS));
}
}
}
+
+ @Test
+ public void alarmInfoTest() {
+ JSONObject disposeParam = new JSONObject();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+ disposeParam.set("alarmId", "1");
+ disposeParam.set("dstIp", "192.168.1.1");
+ disposeParam.set("attackType", "1");
+ disposeParam.set("bpspps", "bps");
+ disposeParam.set("dstProvince", "ZHEJIANG");
+ disposeParam.set("dstCity", "HANGZHOU");
+ disposeParam.set("startTime", sdf.format(new Date()));
+ // 1清洗,2流控,3黑洞
+ disposeParam.set("disposeType", 1);
+ disposeParam.set("disposeTime", 30);
+ disposeParam.set("endTime", "");
+ List srcIp = new ArrayList<>();
+ srcIp.add("192.168.10.1");
+ srcIp.add("192.168.10.2");
+ disposeParam.set("srcIpLs", srcIp);
+ disposeParam.set("maxBps", "20bps");
+ disposeParam.set("maxPps", "20pps");
+ String jsonAlarmInfo = disposeParam.toString();
+ log.info("============ jsonAlarmInfo :{}", jsonAlarmInfo);
+ }
}
diff --git a/src/test/java/com/dispose/test/dev/mapper/MsgSerialMapperTest.java b/src/test/java/com/dispose/test/dev/mapper/MsgSerialMapperTest.java
new file mode 100644
index 00000000..c80abcc1
--- /dev/null
+++ b/src/test/java/com/dispose/test/dev/mapper/MsgSerialMapperTest.java
@@ -0,0 +1,53 @@
+package com.dispose.test.dev.mapper;
+
+import com.dispose.mapper.MsgSerialMapper;
+import com.dispose.test.dev.Global.InitTestEnvironment;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+/**
+ * The message serial test.
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+@Slf4j
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+@Transactional
+public class MsgSerialMapperTest extends InitTestEnvironment {
+
+ /**
+ * The message serial mapper.
+ */
+ @Resource
+ MsgSerialMapper msgSerialMapper;
+
+ /**
+ * A 1 add new message serial.
+ */
+ @Test
+ public void a1_addMsgSerial() {
+ for (long msgSerial = 1L; msgSerial <= 10L; msgSerial++) {
+ log.info("++++++++++++++++++MsgSerial {}", msgSerial);
+ msgSerialMapper.updateMsgSerial(msgSerial);
+ }
+ }
+
+ @Test
+ public void a2_getMaxMsgSerial() {
+ for (long msgSerial = 1L; msgSerial <= 16L; msgSerial++) {
+ msgSerialMapper.updateMsgSerial(msgSerial);
+ }
+ long maxMsgSerial = msgSerialMapper.getMaxMsgSerial();
+ log.info("+++++++++++++++++++ max MsgSerial {}", maxMsgSerial);
+ Assert.assertEquals(maxMsgSerial, 16);
+ }
+}