Skip to content

Commit 65b4040

Browse files
committed
add parent agent id header for outgoing requests
1 parent b9b885d commit 65b4040

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

dongtai-core/src/main/java/io/dongtai/iast/core/handler/context/ContextManager.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ public static String getHeaderKey() {
2222
return "dt-traceid";
2323
}
2424

25+
public static String getParentKey() {
26+
return "dt-parent-agent";
27+
}
28+
2529
public static void parseTraceId(String traceId) {
2630
TracingContext context = TracingContext.getIncoming(traceId);
2731
CONTEXT.set(context);

dongtai-core/src/main/java/io/dongtai/iast/core/handler/hookpoint/service/trace/FeignService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ public static void solveSyncInvoke(MethodEvent event, AtomicInteger invokeIdSequ
4040
String traceId = ContextManager.nextTraceId();
4141
// clear old traceId header
4242
addHeaderMethod.invoke(template, ContextManager.getHeaderKey(), new String[]{});
43+
addHeaderMethod.invoke(template, ContextManager.getParentKey(), new String[]{});
4344
addHeaderMethod.invoke(template, ContextManager.getHeaderKey(), new String[]{traceId});
45+
addHeaderMethod.invoke(template, ContextManager.getParentKey(),
46+
new String[]{String.valueOf(EngineManager.getAgentId())});
4447

4548
// add to method pool
4649
event.source = false;

dongtai-core/src/main/java/io/dongtai/iast/core/handler/hookpoint/service/trace/HttpService.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.dongtai.iast.core.handler.hookpoint.service.trace;
22

3+
import io.dongtai.iast.core.EngineManager;
34
import io.dongtai.iast.core.handler.context.ContextManager;
45
import io.dongtai.iast.core.handler.hookpoint.models.MethodEvent;
56
import io.dongtai.iast.core.handler.hookpoint.models.policy.PolicyNode;
@@ -52,6 +53,8 @@ private String addTraceToJavaNetURL(MethodEvent event) {
5253
final HttpURLConnection connection = (HttpURLConnection) event.objectInstance;
5354
final String traceId = ContextManager.nextTraceId();
5455
connection.setRequestProperty(ContextManager.getHeaderKey(), traceId);
56+
connection.setRequestProperty(ContextManager.getParentKey(),
57+
String.valueOf(EngineManager.getAgentId()));
5558
return traceId;
5659
}
5760
} catch (IllegalStateException ignore) {
@@ -84,6 +87,7 @@ private String addTraceToApacheHttpClient(MethodEvent event) {
8487
}
8588
final String traceId = ContextManager.nextTraceId();
8689
method.invoke(obj, ContextManager.getHeaderKey(), traceId);
90+
method.invoke(obj, ContextManager.getParentKey(), String.valueOf(EngineManager.getAgentId()));
8791
return traceId;
8892
} catch (Throwable e) {
8993
DongTaiLog.debug("add traceId header to apache http client failed: {}, {}",
@@ -105,6 +109,7 @@ private String addTraceToApacheHttpClientLegacy(MethodEvent event) {
105109
}
106110
final String traceId = ContextManager.nextTraceId();
107111
method.invoke(obj, ContextManager.getHeaderKey(), traceId);
112+
method.invoke(obj, ContextManager.getParentKey(), String.valueOf(EngineManager.getAgentId()));
108113
return traceId;
109114
} catch (Throwable e) {
110115
DongTaiLog.debug("add traceId header to apache legacy http client failed: {}, {}",
@@ -134,6 +139,8 @@ private String addTraceToOkhttp(MethodEvent event) {
134139
Method methodAddHeader = reqBuilder.getClass().getMethod("addHeader", String.class, String.class);
135140
final String traceId = ContextManager.nextTraceId();
136141
methodAddHeader.invoke(reqBuilder, ContextManager.getHeaderKey(), traceId);
142+
methodAddHeader.invoke(reqBuilder, ContextManager.getParentKey(),
143+
String.valueOf(EngineManager.getAgentId()));
137144
Method methodBuild = reqBuilder.getClass().getMethod("build");
138145
Object newReq = methodBuild.invoke(reqBuilder);
139146
reqField.set(obj, newReq);

0 commit comments

Comments
 (0)