Skip to content

Commit 69853f2

Browse files
committed
add xray headers
1 parent 8a23adb commit 69853f2

File tree

1 file changed

+14
-4
lines changed
  • dongtai-core/src/main/java/io/dongtai/iast/core/handler/hookpoint/controller/impl

1 file changed

+14
-4
lines changed

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

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,21 @@ public static void solveHttpRequest(Object obj, Object req, Object resp, Map<Str
8383
try {
8484
boolean enableVersionHeader = ((Config<Boolean>) ConfigBuilder.getInstance()
8585
.getConfig(ConfigKey.ENABLE_VERSION_HEADER)).get();
86-
if (enableVersionHeader) {
87-
String versionHeaderKey = ((Config<String>) ConfigBuilder.getInstance()
88-
.getConfig(ConfigKey.VERSION_HEADER_KEY)).get();
86+
String xrayHeader = ((Map<String, String>) requestMeta.get("headers")).get("Xray");
87+
if (enableVersionHeader || xrayHeader != null) {
8988
Method setHeaderMethod = ReflectUtils.getDeclaredMethodFromSuperClass(resp.getClass(),
9089
"setHeader", new Class[]{String.class, String.class});
9190
if (setHeaderMethod != null) {
92-
setHeaderMethod.invoke(resp, versionHeaderKey, AgentConstant.VERSION_VALUE);
91+
if (enableVersionHeader) {
92+
String versionHeaderKey = ((Config<String>) ConfigBuilder.getInstance()
93+
.getConfig(ConfigKey.VERSION_HEADER_KEY)).get();
94+
setHeaderMethod.invoke(resp, versionHeaderKey, AgentConstant.VERSION_VALUE);
95+
}
96+
if (xrayHeader != null) {
97+
String reqId = String.valueOf(EngineManager.getAgentId()) + "."
98+
+ UUID.randomUUID().toString().replaceAll("-", "");
99+
setHeaderMethod.invoke(resp, "dt-request-id", reqId);
100+
}
93101
}
94102
}
95103
} catch (Throwable ignore) {
@@ -141,6 +149,8 @@ public static Map<String, String> parseRequestHeaders(Object req, Enumeration<?>
141149
String val = (String) getHeaderMethod.invoke(req, key);
142150
if ("content-type".equalsIgnoreCase(key)) {
143151
key = "Content-Type";
152+
} else if ("xray".equalsIgnoreCase(key)) {
153+
key = "Xray";
144154
}
145155
headers.put(key, val);
146156
} catch (Throwable ignore) {

0 commit comments

Comments
 (0)