From 818116f8204ed64730467127b12a4ee0f7d267a3 Mon Sep 17 00:00:00 2001 From: Stuart McCulloch Date: Tue, 28 Jan 2025 09:51:33 +0000 Subject: [PATCH] IAST doesn't directly make any remote calls, so never delay starting it --- .../src/main/java/datadog/trace/bootstrap/Agent.java | 9 ++++----- .../test/groovy/com/datadog/iast/IastSystemTest.groovy | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java index 04361d159d6..e0e65f16324 100644 --- a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java +++ b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java @@ -531,6 +531,7 @@ public InstallDatadogTracerCallback( installDatadogTracer(initTelemetry, scoClass, sco); maybeInstallLogsIntake(scoClass, sco); + maybeStartIast(instrumentation); } @Override @@ -545,7 +546,6 @@ public void execute() { } maybeStartAppSec(scoClass, sco); - maybeStartIast(instrumentation, scoClass, sco); maybeStartCiVisibility(instrumentation, scoClass, sco); // start debugger before remote config to subscribe to it before starting to poll maybeStartDebugger(instrumentation, scoClass, sco); @@ -847,14 +847,14 @@ private static boolean isSupportedAppSecArch() { return true; } - private static void maybeStartIast(Instrumentation instrumentation, Class scoClass, Object o) { + private static void maybeStartIast(Instrumentation instrumentation) { if (iastEnabled || !iastFullyDisabled) { StaticEventLogger.begin("IAST"); try { SubscriptionService ss = AgentTracer.get().getSubscriptionService(RequestContextSlot.IAST); - startIast(instrumentation, ss, scoClass, o); + startIast(instrumentation, ss); } catch (Exception e) { log.error("Error starting IAST subsystem", e); } @@ -863,8 +863,7 @@ private static void maybeStartIast(Instrumentation instrumentation, Class sco } } - private static void startIast( - Instrumentation instrumentation, SubscriptionService ss, Class scoClass, Object sco) { + private static void startIast(Instrumentation instrumentation, SubscriptionService ss) { try { final Class appSecSysClass = AGENT_CLASSLOADER.loadClass("com.datadog.iast.IastSystem"); final Method iastInstallerMethod = diff --git a/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/IastSystemTest.groovy b/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/IastSystemTest.groovy index 38014536f16..d2b4bd96a4a 100644 --- a/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/IastSystemTest.groovy +++ b/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/IastSystemTest.groovy @@ -136,7 +136,7 @@ class IastSystemTest extends DDSpecification { InstrumentationBridge.clearIastModules() when: - Agent.maybeStartIast(null, null, null) + Agent.maybeStartIast(null) then: InstrumentationBridge.iastModules.each {