Skip to content

Commit fc8fa83

Browse files
author
‘niuerzhuang’
committed
Merge branch 'beta' into feature/costom-tag-config
merge.
2 parents 1b9634b + 27bacc4 commit fc8fa83

File tree

46 files changed

+1295
-318
lines changed

Some content is hidden

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

46 files changed

+1295
-318
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>
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+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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.MemUsageChecker;
5+
import io.dongtai.iast.common.entity.performance.PerformanceMetrics;
6+
import io.dongtai.iast.common.entity.performance.metrics.MemoryUsageMetrics;
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+
public class MemUsageCheckerTest {
14+
15+
16+
/**
17+
* 测试内存检查
18+
*/
19+
@Test
20+
public void testIsPerformanceOverLimit() {
21+
// 配置参数
22+
Properties cfg = new Properties();
23+
// 设置配置内存阈值
24+
cfg.setProperty("iast.remoteSync.performanceLimit.maxThreshold.memoryUsage", "{\"committed\":1024," +
25+
"\"init\":1024,\"max\":1024,\"memUsagePercentage\":80.0,\"systemMaxLimit\":-1," +
26+
"\"trulyMaxMem\":1024,\"used\":1024}\n");
27+
//初始化临时目录
28+
IastProperties.initTmpDir();
29+
// 创建检查器对象
30+
MemUsageChecker memUsageChecker = new MemUsageChecker();
31+
// 创建模拟性能指标对象
32+
PerformanceMetrics nowMetrics = new PerformanceMetrics();
33+
nowMetrics.setMetricsKey(MetricsKey.MEM_USAGE);
34+
nowMetrics.setMetricsValue(new MemoryUsageMetrics(1024L, 1024L, 1024L, 1024L));
35+
// 内存使用率超过阈值,应该返回true
36+
Assert.assertTrue(memUsageChecker.isPerformanceOverLimit(nowMetrics, cfg));
37+
38+
39+
// 修改性能指标对象的内存使用率为70%
40+
nowMetrics.setMetricsValue(new MemoryUsageMetrics(1024L, 500L, 1024L, 1024L));
41+
// 内存使用率未超过阈值,应该返回false
42+
Assert.assertFalse(memUsageChecker.isPerformanceOverLimit(nowMetrics, cfg));
43+
}
44+
}

dongtai-api-gather/dongtai-api-gather-openapi/pom.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,6 @@
2424
<version>${fastjson2.version}</version>
2525
<scope>provided</scope>
2626
</dependency>
27-
<dependency>
28-
<groupId>junit</groupId>
29-
<artifactId>junit</artifactId>
30-
<version>${junit.version}</version>
31-
<scope>test</scope>
32-
</dependency>
3327
</dependencies>
3428

3529
</project>

dongtai-api-gather/dongtai-api-gather-spring-api/pom.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,6 @@
3030
<version>${project.version}</version>
3131
<scope>provided</scope>
3232
</dependency>
33-
<dependency>
34-
<groupId>junit</groupId>
35-
<artifactId>junit</artifactId>
36-
<version>${junit.version}</version>
37-
<scope>test</scope>
38-
</dependency>
3933
</dependencies>
4034

4135
<build>

dongtai-api-gather/dongtai-api-gather-spring-api/src/main/java/io/dongtai/iast/api/gather/spring/convertor/RequestMappingInfoConvertor.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ private void parsePathPatternsRequestCondition() {
6060
});
6161
}
6262
} catch (Throwable e) {
63-
DongTaiLog.debug("spring api path.getPathPatternsCondition router exception", e);
63+
// DongTaiLog.debug("spring api path.getPathPatternsCondition router exception", e);
6464
}
6565

6666
try {
@@ -78,7 +78,7 @@ public void accept(String s) {
7878
});
7979
}
8080
} catch (Throwable e) {
81-
DongTaiLog.debug("spring api path.getPatternsCondition router exception", e);
81+
// DongTaiLog.debug("spring api path.getPatternsCondition router exception", e);
8282
}
8383
}
8484

@@ -144,7 +144,7 @@ public void accept(RequestMethod requestMethod) {
144144
}
145145
});
146146
} catch (Throwable e) {
147-
DongTaiLog.debug("spring api method router exception", e);
147+
// DongTaiLog.debug("spring api method router exception", e);
148148
}
149149
}
150150

@@ -210,7 +210,7 @@ public void accept(NameValueExpression<String> stringNameValueExpression) {
210210
});
211211
return parameterList;
212212
} catch (Throwable e) {
213-
DongTaiLog.debug("spring api parameters router exception: {}", e.getMessage());
213+
// DongTaiLog.debug("spring api parameters router exception: {}", e.getMessage());
214214
}
215215
return Collections.emptyList();
216216
}
@@ -242,7 +242,7 @@ public void accept(NameValueExpression<String> stringNameValueExpression) {
242242
});
243243
return headerParameterList;
244244
} catch (Throwable e) {
245-
DongTaiLog.debug("spring api headers router exception: {}", e.getMessage());
245+
// DongTaiLog.debug("spring api headers router exception: {}", e.getMessage());
246246
}
247247
return Collections.emptyList();
248248
}

dongtai-api-gather/dongtai-api-gather-spring-api/src/main/java/io/dongtai/iast/api/gather/spring/extractor/SpringMVCApiExtractor.java

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

33
import io.dongtai.iast.api.gather.spring.convertor.RequestMappingHandlerMappingConvertor;
44
import io.dongtai.iast.api.openapi.domain.OpenApi;
5+
import io.dongtai.iast.common.utils.ExceptionUtil;
56
import io.dongtai.log.DongTaiLog;
67
import org.springframework.web.context.WebApplicationContext;
78
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
@@ -72,7 +73,11 @@ private List<RequestMappingHandlerMapping> findRequestMappingHandlerMapping(WebA
7273
}
7374
}
7475
} catch (Throwable e) {
75-
DongTaiLog.debug("try use BeanFactoryUtils find RequestMappingHandlerMapping exception", e);
76+
// 仅在出现预期外错误的时候才打印日志
77+
String s = ExceptionUtil.getPrintStackTraceString(e);
78+
if (!s.contains("java.lang.NoSuchMethodException: org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors()")) {
79+
DongTaiLog.debug("try use BeanFactoryUtils throw RequestMappingHandlerMapping exception", e);
80+
}
7681
}
7782

7883
// 没有工具类,就只从自己里面找

dongtai-api-gather/pom.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,13 @@
1818
<module>dongtai-api-gather-dubbo-api</module>
1919
</modules>
2020

21+
<dependencies>
22+
<dependency>
23+
<groupId>io.dongtai.iast</groupId>
24+
<artifactId>dongtai-common</artifactId>
25+
<version>${revision}</version>
26+
<scope>compile</scope>
27+
</dependency>
28+
</dependencies>
29+
2130
</project>

dongtai-common/pom.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,6 @@
3737
<artifactId>fastjson2</artifactId>
3838
<version>${fastjson2.version}</version>
3939
</dependency>
40-
41-
<dependency>
42-
<groupId>junit</groupId>
43-
<artifactId>junit</artifactId>
44-
<scope>test</scope>
45-
</dependency>
4640
</dependencies>
4741

4842
<build>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package io.dongtai.iast.common.exception;
2+
3+
/**
4+
* 动态Agent整个项目内异常的基类,以后的异常尽量都继承这个类
5+
*
6+
* @author CC11001100
7+
* @since 1.13.2
8+
*/
9+
public class DongTaiIastException extends Exception {
10+
11+
public DongTaiIastException() {
12+
}
13+
14+
public DongTaiIastException(String message) {
15+
super(message);
16+
}
17+
18+
public DongTaiIastException(String message, Throwable cause) {
19+
super(message, cause);
20+
}
21+
22+
public DongTaiIastException(Throwable cause) {
23+
super(cause);
24+
}
25+
26+
public DongTaiIastException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
27+
super(message, cause, enableSuppression, writableStackTrace);
28+
}
29+
}

0 commit comments

Comments
 (0)