Skip to content

Commit c6734c7

Browse files
authored
Merge pull request #590 from HXSecurity/develop
merge Develop
2 parents 26710e6 + 1ecfecf commit c6734c7

File tree

87 files changed

+1670
-74193
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+1670
-74193
lines changed

dongtai-agent/pom.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,6 @@
2525
<version>${commons-lang3.version}</version>
2626
</dependency>
2727

28-
<dependency>
29-
<groupId>junit</groupId>
30-
<artifactId>junit</artifactId>
31-
<version>${junit.version}</version>
32-
<scope>test</scope>
33-
</dependency>
34-
3528
<dependency>
3629
<groupId>org.json</groupId>
3730
<artifactId>json</artifactId>

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ protected synchronized Class<?> loadClass(String name, boolean resolve) throws C
5050
return loadedClass;
5151
}
5252

53-
if (!name.startsWith("io.dongtai") && !name.startsWith("com.secnium")
54-
&& !name.startsWith("cn.huoxian") && !name.startsWith("java.lang.iast")) {
53+
if (!name.startsWith("io.dongtai") && !name.startsWith("java.lang.iast")) {
5554
return super.loadClass(name, resolve);
5655
}
5756

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ public class IastProperties {
3434
put("uuid_path", PropertyConstant.PROPERTY_UUID_PATH);
3535
put("disabled_plugins", PropertyConstant.PROPERTY_DISABLED_PLUGINS);
3636
put("disabled_features", PropertyConstant.PROPERTY_DISABLED_FEATURES);
37+
put("pool_capacity", PropertyConstant.PROPERTY_POOL_CAPACITY);
38+
put("pool_size", PropertyConstant.PROPERTY_POOL_SIZE);
39+
put("pool_max_size", PropertyConstant.PROPERTY_POOL_MAX_SIZE);
40+
put("pool_keepalive", PropertyConstant.PROPERTY_POOL_KEEPALIVE);
3741
}};
3842

3943
private static IastProperties instance;

dongtai-agent/src/main/java/io/dongtai/iast/agent/fallback/checker/MetricsBindCheckerEnum.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public enum MetricsBindCheckerEnum {
3333
/**
3434
* 检查器类型
3535
*/
36-
private Class<? extends IPerformanceChecker> checker;
36+
private final Class<? extends IPerformanceChecker> checker;
3737

3838
/**
3939
* 描述

dongtai-agent/src/main/java/io/dongtai/iast/agent/manager/EngineManager.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import io.dongtai.iast.agent.*;
44
import io.dongtai.iast.agent.fallback.FallbackManager;
5-
import io.dongtai.iast.agent.monitor.MonitorDaemonThread;
65
import io.dongtai.iast.agent.report.AgentRegisterReport;
76
import io.dongtai.iast.agent.util.*;
87
import io.dongtai.iast.common.state.AgentState;
@@ -22,13 +21,10 @@
2221
*/
2322
public class EngineManager {
2423

25-
private static final String ENGINE_ENTRYPOINT_CLASS = "com.secnium.iast.core.AgentEngine";
24+
private static final String ENGINE_ENTRYPOINT_CLASS = "io.dongtai.iast.core.AgentEngine";
2625
private static final String INJECT_PACKAGE_REMOTE_URI = "/api/v1/engine/download?engineName=dongtai-spy";
27-
private static final String INJECT_PACKAGE_REMOTE_URI_JDK6 = "/api/v1/engine/download?engineName=dongtai-spy-jdk6";
2826
private static final String ENGINE_PACKAGE_REMOTE_URI = "/api/v1/engine/download?engineName=dongtai-core";
29-
private static final String ENGINE_PACKAGE_REMOTE_URI_JDK6 = "/api/v1/engine/download?engineName=dongtai-core-jdk6";
3027
private static final String API_PACKAGE_REMOTE_URI = "/api/v1/engine/download?engineName=dongtai-api";
31-
private static final String API_PACKAGE_REMOTE_URI_JDK6 = "/api/v1/engine/download?engineName=dongtai-api-jdk6";
3228
private final static String TMP_DIR = IastProperties.getInstance().getTmpDir();
3329
private static IastClassLoader IAST_CLASS_LOADER;
3430
private static EngineManager INSTANCE;
@@ -187,7 +183,6 @@ public boolean install() {
187183
* 启动检测引擎
188184
*/
189185
public boolean start() {
190-
// 将Spy注入到BootstrapClassLoader,todo: 异常卸载时,需要特定处理spy模块
191186
try {
192187
if (classOfEngine != null) {
193188
classOfEngine.getMethod("start").invoke(null);
@@ -207,7 +202,6 @@ public boolean start() {
207202
* @return 布尔值,表示stop成功或失败
208203
*/
209204
public boolean stop() {
210-
// 将Spy注入到BootstrapClassLoader,todo: 异常卸载时,需要特定处理spy模块
211205
try {
212206
if (classOfEngine != null) {
213207
classOfEngine.getMethod("stop").invoke(null);

dongtai-agent/src/main/java/io/dongtai/iast/agent/middlewarerecognition/jboss/JBoss.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ public String getVersion() {
5252
if (matcher.find()) {
5353
version = matcher.group(1);
5454
}
55-
} catch (IOException iOException) {
56-
;
55+
} catch (IOException ignored) {
5756
}
5857
}
5958
}

dongtai-agent/src/main/java/io/dongtai/iast/agent/middlewarerecognition/spring/Tomcat.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
*/
1111
public class Tomcat implements IServer {
1212

13-
private static String TOMCAT_BOOTSTAP = " org.apache.catalina.startup.Bootstrap".substring(1);
14-
private static String TOMCAT_SERVER_INFO = " org.apache.catalina.util.ServerInfo".substring(1);
13+
private static final String TOMCAT_BOOTSTAP = " org.apache.catalina.startup.Bootstrap".substring(1);
14+
private static final String TOMCAT_SERVER_INFO = " org.apache.catalina.util.ServerInfo".substring(1);
1515
private String name;
1616
private String version;
1717

dongtai-agent/src/main/java/io/dongtai/iast/agent/monitor/collector/MetricsBindCollectorEnum.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public enum MetricsBindCollectorEnum {
3131
/**
3232
* 收集器类型
3333
*/
34-
private Class<? extends IPerformanceCollector> collector;
34+
private final Class<? extends IPerformanceCollector> collector;
3535

3636
/**
3737
* 描述

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import java.io.*;
1919
import java.net.*;
20-
import java.nio.charset.Charset;
20+
import java.nio.charset.StandardCharsets;
2121
import java.util.Enumeration;
2222
import java.util.UUID;
2323

@@ -58,7 +58,7 @@ private String generateAgentRegisterMsg() {
5858
object.put("language", AgentConstant.LANGUAGE);
5959
object.put("network", readIpInfo());
6060
object.put("serverEnv", Base64Encoder
61-
.encodeBase64String(System.getProperties().toString().getBytes(Charset.forName("UTF-8")))
61+
.encodeBase64String(System.getProperties().toString().getBytes(StandardCharsets.UTF_8))
6262
.replaceAll("\n", "").replaceAll("\r", ""));
6363
object.put("containerName", null == server ? "" : server.getName());
6464
object.put("containerVersion", null == server ? "" : server.getVersion());
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package io.dongtai.iast.agent.fallback.checker;
2+
3+
import io.dongtai.iast.agent.IastProperties;
4+
import io.dongtai.iast.agent.fallback.checker.impl.CpuUsageChecker;
5+
import io.dongtai.iast.common.entity.performance.PerformanceMetrics;
6+
import io.dongtai.iast.common.entity.performance.metrics.CpuInfoMetrics;
7+
import io.dongtai.iast.common.enums.MetricsKey;
8+
import org.junit.Assert;
9+
import org.junit.Test;
10+
11+
import java.util.Properties;
12+
13+
/**
14+
* 检查CPU使用率
15+
*/
16+
public class CpuUsageCheckerTest {
17+
18+
@Test
19+
public void testIsPerformanceOverLimit() {
20+
21+
22+
// 创建配置参数对象
23+
Properties cfg = new Properties();
24+
cfg.setProperty("iast.remoteSync.performanceLimit.maxThreshold.cpuUsage", "{\"cpuUsagePercentage\":80.0}");
25+
26+
//初始化临时目录
27+
IastProperties.initTmpDir();
28+
29+
// 创建测试用例对象
30+
CpuUsageChecker cpuUsageChecker = new CpuUsageChecker();
31+
// 创建模拟性能指标对象
32+
PerformanceMetrics nowMetrics = new PerformanceMetrics();
33+
CpuInfoMetrics cpuInfoMetrics = new CpuInfoMetrics();
34+
cpuInfoMetrics.setCpuUsagePercentage(81.0);
35+
36+
nowMetrics.setMetricsKey(MetricsKey.CPU_USAGE);
37+
nowMetrics.setMetricsValue(cpuInfoMetrics);
38+
39+
// CPU使用率超过阈值,应该返回true
40+
Assert.assertTrue(cpuUsageChecker.isPerformanceOverLimit(nowMetrics, cfg));
41+
42+
// 修改性能指标对象的CPU使用率为70%
43+
cpuInfoMetrics.setCpuUsagePercentage(70.0);
44+
// CPU使用率未超过阈值,应该返回false
45+
Assert.assertFalse(cpuUsageChecker.isPerformanceOverLimit(nowMetrics, cfg));
46+
}
47+
}

0 commit comments

Comments
 (0)