summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhanghongqing <[email protected]>2023-12-26 11:00:35 +0800
committerzhanghongqing <[email protected]>2023-12-26 11:00:35 +0800
commitcf19393569264b5cbfe3ad4eff54816e4c95b1a6 (patch)
tree27c1291dab84d6c6adb39904d60465f62f8123de
parent595006ab005257abd1684dc1fb965e7047aa1fad (diff)
[修改][IP定位库] 修改IP定位库适配查询网关接口
-rw-r--r--galaxy-job-executor/src/main/java/com/mesalab/executor/jobhandler/IpLocateLibraryJob.java31
-rw-r--r--galaxy-job-executor/src/main/java/com/mesalab/executor/pojo/IpLocateLibraryParam.java4
-rw-r--r--galaxy-job-executor/src/main/java/com/mesalab/executor/pojo/TsgKnowledgeBase.java23
-rw-r--r--galaxy-job-executor/src/main/resources/plugins/mmdb/tsg/mmdb-perl.pl4
4 files changed, 37 insertions, 25 deletions
diff --git a/galaxy-job-executor/src/main/java/com/mesalab/executor/jobhandler/IpLocateLibraryJob.java b/galaxy-job-executor/src/main/java/com/mesalab/executor/jobhandler/IpLocateLibraryJob.java
index 541db75..df2e992 100644
--- a/galaxy-job-executor/src/main/java/com/mesalab/executor/jobhandler/IpLocateLibraryJob.java
+++ b/galaxy-job-executor/src/main/java/com/mesalab/executor/jobhandler/IpLocateLibraryJob.java
@@ -12,8 +12,8 @@ import com.geedgenetworks.utils.StringUtil;
import com.mesalab.executor.core.utils.HttpClientUtils;
import com.mesalab.executor.core.utils.JobUtil;
import com.mesalab.executor.pojo.IpLocateLibraryParam;
-import com.mesalab.executor.pojo.KnowledgeBase;
import com.mesalab.executor.pojo.MMDBStatus;
+import com.mesalab.executor.pojo.TsgKnowledgeBase;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.XxlJob;
@@ -54,14 +54,14 @@ public class IpLocateLibraryJob {
}
try {
int successCount = 0;
- List<KnowledgeBase> knowledgeBaseList = parserParams.getKnowledgeBaseList();
+ List<TsgKnowledgeBase> knowledgeBaseList = parserParams.getKnowledgeBaseList();
Map<String, String> historyFileInfo = historyFileInfo(parserParams);
- for (KnowledgeBase knowledgeBase : knowledgeBaseList) {
+ for (TsgKnowledgeBase knowledgeBase : knowledgeBaseList) {
String cmdStr = StrUtil.removeSuffix(StrUtil.trim(parserParams.getCommand()), "'") + " "
+ ObjectUtils.defaultIfNull(knowledgeBase.getBuiltin(), "") + "' ";
int executeResult = JobUtil.executeCommand(cmdStr);
- File newFile = new File(StringUtils.join(parserParams.getPath(), File.separator, knowledgeBase.getName(), ".", knowledgeBase.getFormat()));
+ File newFile = new File(StringUtils.join(parserParams.getPath(), File.separator, knowledgeBase.getName(), ".", StringUtils.lowerCase(knowledgeBase.getFormat())));
if (!checkExecuteResult(executeResult, newFile, knowledgeBase)) {
continue;
}
@@ -80,7 +80,7 @@ public class IpLocateLibraryJob {
return ReturnT.FAIL;
}
- private boolean checkExecuteResult(int executeResult, File newFile, KnowledgeBase knowledgeBase) throws Exception {
+ private boolean checkExecuteResult(int executeResult, File newFile, TsgKnowledgeBase knowledgeBase) throws Exception {
if (executeResult != 0) {
JobUtil.errorLog("{} built failed, perl execute result {}.", newFile.getName(), executeResult);
return false;
@@ -97,7 +97,7 @@ public class IpLocateLibraryJob {
}
- private boolean pushKnowledge(KnowledgeBase knowledgeBase, File newFile, String knowledgeBasServer, Map<String, String> historyFileInfo) {
+ private boolean pushKnowledge(TsgKnowledgeBase knowledgeBase, File newFile, String knowledgeBasServer, Map<String, String> historyFileInfo) {
String newFileSha256 = DigestUtil.sha256Hex(newFile);
if (newFileSha256.equals(historyFileInfo.get(knowledgeBase.getName()))) {
@@ -126,10 +126,10 @@ public class IpLocateLibraryJob {
String result = HttpClientUtils.httpGet(ipLocateLibraryParam.getKnowledgeBaseServer());
Object extract = JSONPath.extract(result, "$.data[version=='latest']");
JSONArray objects = JSONUtil.parseArray(extract);
- List<KnowledgeBase> infos = JSONUtil.toList(objects, KnowledgeBase.class);
+ List<TsgKnowledgeBase> infos = JSONUtil.toList(objects, TsgKnowledgeBase.class);
Map<String, String> historyInfo = new HashMap<>();
- for (KnowledgeBase info : infos) {
+ for (TsgKnowledgeBase info : infos) {
historyInfo.put(info.getName(), info.getSha256());
}
@@ -139,7 +139,7 @@ public class IpLocateLibraryJob {
/**
* 检查脚本运行结果和抽样ip是否打到包里
*/
- private boolean checkIpSample(KnowledgeBase knowledgeBase, File newFile) throws Exception {
+ private boolean checkIpSample(TsgKnowledgeBase knowledgeBase, File newFile) throws Exception {
String workPath = newFile.getParent().concat(File.separator);
MMDBStatus mmdbStatus = JobUtil.readJsonFile(workPath + knowledgeBase.getName() + "_status.json", MMDBStatus.class);
@@ -147,7 +147,7 @@ public class IpLocateLibraryJob {
JobUtil.errorLog("perl query failed result: status {}, message {}.", mmdbStatus.getStatus(), mmdbStatus.getMessage());
return false;
}
- if (mmdbStatus.getTotal() == 0 ) {
+ if (mmdbStatus.getTotal() == 0) {
JobUtil.errorLog("perl query failed result: total {}.", mmdbStatus.getTotal());
return false;
}
@@ -188,16 +188,7 @@ public class IpLocateLibraryJob {
logger.info("path is null ! ");
return null;
}
- if (ObjectUtil.isNull(param.getRetry())) {
- XxlJobLogger.log("retry is null ! ");
- logger.info("retry is null ! ");
- return null;
- }
- if (ObjectUtil.isNull(param.getPushKnowledge())) {
- XxlJobLogger.log("pushKnowledge is null ! ");
- logger.info("pushKnowledge is null ! ");
- return null;
- }
+
if (ObjectUtil.isNull(param.getKnowledgeBaseServer())) {
XxlJobLogger.log("knowledgeServer is null ! ");
logger.info("knowledgeServer is null ! ");
diff --git a/galaxy-job-executor/src/main/java/com/mesalab/executor/pojo/IpLocateLibraryParam.java b/galaxy-job-executor/src/main/java/com/mesalab/executor/pojo/IpLocateLibraryParam.java
index 67a867a..4052632 100644
--- a/galaxy-job-executor/src/main/java/com/mesalab/executor/pojo/IpLocateLibraryParam.java
+++ b/galaxy-job-executor/src/main/java/com/mesalab/executor/pojo/IpLocateLibraryParam.java
@@ -17,10 +17,8 @@ public class IpLocateLibraryParam implements Serializable {
private String command;
private String path;
- private Integer retry = 0;
- private Boolean pushKnowledge = false;
private String knowledgeBaseServer;
- private List<KnowledgeBase> knowledgeBaseList;
+ private List<TsgKnowledgeBase> knowledgeBaseList;
diff --git a/galaxy-job-executor/src/main/java/com/mesalab/executor/pojo/TsgKnowledgeBase.java b/galaxy-job-executor/src/main/java/com/mesalab/executor/pojo/TsgKnowledgeBase.java
new file mode 100644
index 0000000..2db2068
--- /dev/null
+++ b/galaxy-job-executor/src/main/java/com/mesalab/executor/pojo/TsgKnowledgeBase.java
@@ -0,0 +1,23 @@
+package com.mesalab.executor.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString
+public class TsgKnowledgeBase implements Serializable {
+
+ private String kb_id;
+ private String name;
+ private String format = "MMDB";
+ private String category = "IP";
+ private String sha256;
+ private Integer is_valid = 1;
+ private Integer builtin;
+} \ No newline at end of file
diff --git a/galaxy-job-executor/src/main/resources/plugins/mmdb/tsg/mmdb-perl.pl b/galaxy-job-executor/src/main/resources/plugins/mmdb/tsg/mmdb-perl.pl
index 01fcb4d..023664a 100644
--- a/galaxy-job-executor/src/main/resources/plugins/mmdb/tsg/mmdb-perl.pl
+++ b/galaxy-job-executor/src/main/resources/plugins/mmdb/tsg/mmdb-perl.pl
@@ -17,7 +17,7 @@ my $token="{{ cm_server_token }}";
#自定义:0. 内置:1
my @args = @ARGV;
my $isBuiltin= @args?$args[0]:1;
-my $url="http://$serverHost:8080/v1/global/geolocation/dict/detail?is_builtin=$isBuiltin&vsys_vim id=0";
+my $url="http://$serverHost:8080/v1/policy/library/geoip?is_builtin=$isBuiltin&vsys_id=0";
my $fileName=$isBuiltin==0?'ip_user_defined':'ip_builtin';
my $outfile="$fileName.mmdb";
my $mmdbLog="$fileName.log";
@@ -73,7 +73,7 @@ my $dbTotal=$obj->{"data"}->{"total"};
open(MMDBLOG, "+>>$mmdbLog");
my $gmtDatestring = strftime "%Y-%m-%d %H:%M:%S", gmtime;
-my $list=$obj->{"data"}->{"list"};
+my $list=$obj->{"data"}->{"geoip_list"};
my $JSON =JSON->new->allow_nonref;
my $data = $JSON->encode($list);
my $arraydata=decode_json($data);