Skip to content

Commit faec8af

Browse files
committed
WIP
1 parent a56894b commit faec8af

File tree

36 files changed

+66
-9
lines changed

36 files changed

+66
-9
lines changed

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/DatabaseClientDecorator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ public void onRawStatement(AgentSpan span, String sql) {
140140
brf.tryCommitBlockingResponse(
141141
ctx.getTraceSegment(),
142142
rba.getStatusCode(),
143+
rba.getBlockId(),
143144
rba.getBlockingContentType(),
144145
rba.getExtraHeaders());
145146
}

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/HttpClientDecorator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ protected void onHttpClientRequest(final AgentSpan span, final String url) {
210210
brf.tryCommitBlockingResponse(
211211
ctx.getTraceSegment(),
212212
rba.getStatusCode(),
213+
rba.getBlockId(),
213214
rba.getBlockingContentType(),
214215
rba.getExtraHeaders());
215216
}

dd-java-agent/appsec/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ dependencies {
1515
implementation project(':internal-api')
1616
implementation project(':communication')
1717
implementation project(':telemetry')
18-
implementation group: 'io.sqreen', name: 'libsqreen', version: '17.1.0'
18+
implementation group: 'io.sqreen', name: 'libsqreen', version: '18.0.0'
1919
implementation libs.moshi
2020

2121
testImplementation libs.bytebuddy

dd-java-agent/appsec/src/main/java/com/datadog/appsec/blocking/BlockingServiceImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public BlockingDetails shouldBlockUser(@Nonnull String userId) {
6868
@Override
6969
public boolean tryCommitBlockingResponse(
7070
int statusCode,
71+
String blockId,
7172
@Nonnull BlockingContentType templateType,
7273
@Nonnull Map<String, String> extraHeaders) {
7374
log.info(
@@ -89,7 +90,7 @@ public boolean tryCommitBlockingResponse(
8990
log.debug("About to call block response function: {}", blockResponseFunction);
9091
boolean res =
9192
blockResponseFunction.tryCommitBlockingResponse(
92-
reqCtx.getTraceSegment(), statusCode, templateType, extraHeaders);
93+
reqCtx.getTraceSegment(), statusCode, blockId, templateType, extraHeaders);
9394
if (res) {
9495
TraceSegment traceSegment = reqCtx.getTraceSegment();
9596
if (traceSegment != null) {

dd-java-agent/appsec/src/main/java/com/datadog/appsec/ddwaf/WAFModule.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,11 @@ private Flow.Action.RequestBlockingAction createBlockRequestAction(
477477
} catch (IllegalArgumentException iae) {
478478
log.warn("Unknown content type: {}; using auto", contentType);
479479
}
480-
return new Flow.Action.RequestBlockingAction(statusCode, blockingContentType);
480+
String blockId = (String) actionInfo.parameters.get("block_id");
481+
if (blockId == null) {
482+
throw new RuntimeException("block_request action has no block_id");
483+
}
484+
return new Flow.Action.RequestBlockingAction(statusCode, blockId, blockingContentType);
481485
} catch (RuntimeException cce) {
482486
log.warn("Invalid blocking action data", cce);
483487
if (!isRasp) {
@@ -506,7 +510,11 @@ private Flow.Action.RequestBlockingAction createRedirectRequestAction(
506510
if (location == null) {
507511
throw new RuntimeException("redirect_request action has no location");
508512
}
509-
return Flow.Action.RequestBlockingAction.forRedirect(statusCode, location);
513+
String blockId = (String) actionInfo.parameters.get("block_id");
514+
if (blockId == null) {
515+
throw new RuntimeException("redirect_request action has no block_id");
516+
}
517+
return Flow.Action.RequestBlockingAction.forRedirect(statusCode, blockId, location);
510518
} catch (RuntimeException cce) {
511519
log.warn("Invalid blocking action data", cce);
512520
if (!isRasp) {

dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/src/main/java/datadog/trace/instrumentation/akkahttp/appsec/BlockingResponseHelper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public static HttpResponse handleFinishForWaf(final AgentSpan span, final HttpRe
4545
brf.tryCommitBlockingResponse(
4646
requestContext.getTraceSegment(),
4747
rba.getStatusCode(),
48+
rba.getBlockId(),
4849
rba.getBlockingContentType(),
4950
rba.getExtraHeaders());
5051
HttpResponse altResponse =

dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/src/main/java/datadog/trace/instrumentation/akkahttp/appsec/UnmarshallerHelpers.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ private static void executeCallback(
131131
blockResponseFunction.tryCommitBlockingResponse(
132132
reqCtx.getTraceSegment(),
133133
rba.getStatusCode(),
134+
rba.getBlockId(),
134135
rba.getBlockingContentType(),
135136
rba.getExtraHeaders());
136137
if (success) {

dd-java-agent/instrumentation/jakarta-rs-annotations-3/src/main/java/datadog/trace/instrumentation/jakarta3/MessageBodyWriterInstrumentation.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ static void before(
7777
blockResponseFunction.tryCommitBlockingResponse(
7878
reqCtx.getTraceSegment(),
7979
rba.getStatusCode(),
80+
rba.getBlockId(),
8081
rba.getBlockingContentType(),
8182
rba.getExtraHeaders());
8283

dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/MessageBodyWriterInstrumentation.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ static void before(
8282
blockResponseFunction.tryCommitBlockingResponse(
8383
reqCtx.getTraceSegment(),
8484
rba.getStatusCode(),
85+
rba.getBlockId(),
8586
rba.getBlockingContentType(),
8687
rba.getExtraHeaders());
8788

dd-java-agent/instrumentation/jersey-2-appsec/src/main/java/datadog/trace/instrumentation/jersey2/MessageBodyReaderInstrumentation.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ static void after(
8989
blockResponseFunction.tryCommitBlockingResponse(
9090
reqCtx.getTraceSegment(),
9191
rba.getStatusCode(),
92+
rba.getBlockId(),
9293
rba.getBlockingContentType(),
9394
rba.getExtraHeaders());
9495
t = new BlockingException("Blocked request (for ReaderInterceptorExecutor/proceed)");

0 commit comments

Comments
 (0)