Skip to content

Commit 770adf1

Browse files
authored
Merge pull request #591 from java-sec/feat-jar-embedded-version
feat: 运维流程完善,Version.java修改为编译期自动注入
2 parents ec0718b + cd8bf57 commit 770adf1

File tree

7 files changed

+54
-12
lines changed

7 files changed

+54
-12
lines changed

dongtai-agent/src/main/java/io/dongtai/iast/agent/IastProperties.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@
22

33
import io.dongtai.iast.agent.util.FileUtils;
44
import io.dongtai.iast.agent.util.GsonUtils;
5-
import io.dongtai.iast.common.constants.AgentConstant;
65
import io.dongtai.iast.common.constants.PropertyConstant;
6+
import io.dongtai.iast.common.constants.Version;
77
import io.dongtai.log.DongTaiLog;
88
import io.dongtai.log.ErrorCode;
99

1010
import java.io.File;
1111
import java.io.InputStream;
12-
import java.util.*;
12+
import java.util.HashMap;
13+
import java.util.Map;
14+
import java.util.Properties;
1315

1416
/**
1517
@@ -103,7 +105,7 @@ public static String initTmpDir() {
103105
}
104106
dir.append(sysTmpDir).append(File.separator)
105107
.append("dongtai-").append(System.getProperty("user.name")).append(File.separator)
106-
.append(AgentConstant.VERSION_VALUE).append(File.separator);
108+
.append(Version.VERSION).append(File.separator);
107109

108110
TMP_DIR = dir.toString();
109111
System.setProperty("java.io.tmpdir.dongtai", TMP_DIR);

dongtai-agent/src/main/java/io/dongtai/iast/agent/report/AgentRegisterReport.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
import io.dongtai.iast.agent.util.HttpClientUtils;
1111
import io.dongtai.iast.common.constants.AgentConstant;
1212
import io.dongtai.iast.common.constants.ApiPath;
13+
import io.dongtai.iast.common.constants.Version;
1314
import io.dongtai.iast.common.utils.base64.Base64Encoder;
1415
import io.dongtai.log.DongTaiLog;
1516
import io.dongtai.log.ErrorCode;
1617

17-
1818
import java.io.*;
1919
import java.net.*;
2020
import java.nio.charset.StandardCharsets;
@@ -49,7 +49,7 @@ private String generateAgentRegisterMsg() {
4949
object.put("uuid", uuid);
5050
}
5151
object.put("name", AgentRegisterReport.getAgentToken());
52-
object.put("version", AgentConstant.VERSION_VALUE);
52+
object.put("version", Version.VERSION);
5353
object.put("projectName", getProjectName());
5454
object.put("clusterName", getClusterName());
5555
object.put("clusterVersion", getClusterVersion());
@@ -81,7 +81,7 @@ public static String getAgentToken() {
8181
String osName = System.getProperty("os.name");
8282
String hostname = getInternalHostName();
8383
AGENT_NAME =
84-
osName + "-" + hostname + "-" + AgentConstant.VERSION_VALUE + "-" + IastProperties.getInstance()
84+
osName + "-" + hostname + "-" + Version.VERSION + "-" + IastProperties.getInstance()
8585
.getEngineName();
8686
}
8787
return AGENT_NAME;

dongtai-common/pom.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
<properties>
1515
<apache-httpclient.version>4.5.13</apache-httpclient.version>
16+
<templating-maven-plugin.version>1.0.0</templating-maven-plugin.version>
1617
</properties>
1718

1819
<dependencies>
@@ -41,6 +42,23 @@
4142

4243
<build>
4344
<plugins>
45+
<plugin>
46+
<groupId>org.codehaus.mojo</groupId>
47+
<artifactId>templating-maven-plugin</artifactId>
48+
<version>${templating-maven-plugin.version}</version>
49+
<executions>
50+
<execution>
51+
<id>filtering-java-templates</id>
52+
<goals>
53+
<goal>filter-sources</goal>
54+
</goals>
55+
<configuration>
56+
<!-- 此处配置的是模板文件的位置 -->
57+
<!-- <sourceDirectory>src/main/java-templates</sourceDirectory>-->
58+
</configuration>
59+
</execution>
60+
</executions>
61+
</plugin>
4462
<plugin>
4563
<groupId>org.apache.maven.plugins</groupId>
4664
<artifactId>maven-shade-plugin</artifactId>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package io.dongtai.iast.common.constants;
2+
3+
/**
4+
* @author CC11001100
5+
*/
6+
public class Version {
7+
8+
// templating-maven-plugin 插件的 filter-sources goal 会把这个字段注入进来
9+
public static final String VERSION = "${project.version}";
10+
11+
private Version() {
12+
}
13+
14+
}

dongtai-common/src/main/java/io/dongtai/iast/common/constants/AgentConstant.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package io.dongtai.iast.common.constants;
22

33
public class AgentConstant {
4-
public static final String VERSION_VALUE = "v1.14.0";
4+
5+
// 2023-9-19 15:35:27 修改为使用插件在编译器自动注入而不是手动修改
6+
// public static final String VERSION_VALUE = "v1.14.0";
7+
58
public static final String LANGUAGE = "JAVA";
69
public static final String THREAD_NAME_PREFIX = "DongTai-IAST-";
710
public static final String THREAD_NAME_PREFIX_CORE = "DongTai-IAST-Core-";

dongtai-core/src/main/java/io/dongtai/iast/core/AgentEngine.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.dongtai.iast.core;
22

33
import io.dongtai.iast.common.constants.AgentConstant;
4+
import io.dongtai.iast.common.constants.Version;
45
import io.dongtai.iast.common.state.AgentState;
56
import io.dongtai.iast.common.state.State;
67
import io.dongtai.iast.core.handler.hookpoint.models.policy.PolicyManager;
@@ -71,7 +72,7 @@ public static void install(String mode, String propertiesFilePath, Integer agent
7172
StartUpTimeReport.sendReport(EngineManager.getAgentId(), (int) stopWatch.getTime());
7273
DongTaiLog.info("DongTai Engine is successfully installed to the JVM, and it takes {} s",
7374
stopWatch.getTime() / 1000);
74-
DongTaiLog.info("DongTai Agent Version: {}, DongTai Server: {}", AgentConstant.VERSION_VALUE, cfg.getBaseUrl());
75+
DongTaiLog.info("DongTai Agent Version: {}, DongTai Server: {}", Version.VERSION, cfg.getBaseUrl());
7576
inject(inst);
7677
new ServiceDirReport().send();
7778
} catch (Throwable e) {

dongtai-core/src/main/java/io/dongtai/iast/core/handler/hookpoint/controller/impl/HttpImpl.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package io.dongtai.iast.core.handler.hookpoint.controller.impl;
22

3-
import io.dongtai.iast.common.config.*;
4-
import io.dongtai.iast.common.constants.AgentConstant;
3+
import io.dongtai.iast.common.config.ConfigBuilder;
4+
import io.dongtai.iast.common.config.ConfigKey;
5+
import io.dongtai.iast.common.config.RequestDenyList;
6+
import io.dongtai.iast.common.constants.Version;
57
import io.dongtai.iast.common.string.StringUtils;
68
import io.dongtai.iast.core.EngineManager;
79
import io.dongtai.iast.core.handler.bypass.BlackUrlBypass;
810
import io.dongtai.iast.core.handler.hookpoint.IastClassLoader;
9-
import io.dongtai.iast.core.utils.*;
11+
import io.dongtai.iast.core.utils.HttpClientUtils;
12+
import io.dongtai.iast.core.utils.PropertyUtils;
13+
import io.dongtai.iast.core.utils.ReflectUtils;
1014
import io.dongtai.iast.core.utils.matcher.ConfigMatcher;
1115
import io.dongtai.log.DongTaiLog;
1216

@@ -87,7 +91,7 @@ public static void solveHttpRequest(Object obj, Object req, Object resp, Map<Str
8791
if (setHeaderMethod != null) {
8892
if (enableVersionHeader) {
8993
String versionHeaderKey = ConfigBuilder.getInstance().get(ConfigKey.VERSION_HEADER_KEY);
90-
setHeaderMethod.invoke(resp, versionHeaderKey, AgentConstant.VERSION_VALUE);
94+
setHeaderMethod.invoke(resp, versionHeaderKey, Version.VERSION);
9195
}
9296
if (dastMarkHeader != null) {
9397
String reqId = EngineManager.getAgentId() + "."

0 commit comments

Comments
 (0)