Skip to content

Commit e9b5a57

Browse files
authored
Fix bug (DataDog#10648)
Fix bug Co-authored-by: alejandro.gonzalez <alejandro.gonzalez@datadoghq.com>
1 parent a359c1e commit e9b5a57

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

dd-java-agent/appsec/src/main/java/com/datadog/appsec/gateway/GatewayBridge.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -920,10 +920,14 @@ private NoopFlow onRequestEnded(RequestContext ctx_, IGSpanInfo spanInfo) {
920920
// Report all collected request headers on user tracking event
921921
writeRequestHeaders(
922922
ctx, traceSeg, REQUEST_HEADERS_ALLOW_LIST, ctx.getRequestHeaders(), false);
923+
writeResponseHeaders(
924+
ctx, traceSeg, RESPONSE_HEADERS_ALLOW_LIST, ctx.getResponseHeaders(), false);
923925
} else {
924926
// Report minimum set of collected request headers
925927
writeRequestHeaders(
926928
ctx, traceSeg, DEFAULT_REQUEST_HEADERS_ALLOW_LIST, ctx.getRequestHeaders(), false);
929+
writeResponseHeaders(
930+
ctx, traceSeg, RESPONSE_HEADERS_ALLOW_LIST, ctx.getResponseHeaders(), false);
927931
}
928932
// If extracted any derivatives - commit them
929933
if (!ctx.commitDerivatives(traceSeg)) {

dd-java-agent/appsec/src/test/groovy/com/datadog/appsec/gateway/GatewayBridgeSpecification.groovy

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,6 +1192,10 @@ class GatewayBridgeSpecification extends DDSpecification {
11921192
'x-sigsci-tags' : ['SQLI, XSS'],
11931193
'akamai-user-risk' : ['uuid=913c4545-757b-4d8d-859d-e1361a828361;status=0'],
11941194
]
1195+
mockAppSecCtx.responseHeaders >> [
1196+
'content-type' : ['text/plain'],
1197+
'content-length': ['13'],
1198+
]
11951199
final mockCtx = Stub(RequestContext) {
11961200
getData(RequestContextSlot.APPSEC) >> mockAppSecCtx
11971201
getTraceSegment() >> traceSegment
@@ -1217,6 +1221,8 @@ class GatewayBridgeSpecification extends DDSpecification {
12171221
1 * traceSegment.setTagTop('http.request.headers.x-sigsci-requestid', '55c24b96ca84c02201000001')
12181222
1 * traceSegment.setTagTop('http.request.headers.x-sigsci-tags', 'SQLI, XSS')
12191223
1 * traceSegment.setTagTop('http.request.headers.akamai-user-risk', 'uuid=913c4545-757b-4d8d-859d-e1361a828361;status=0')
1224+
1 * traceSegment.setTagTop('http.response.headers.content-type', 'text/plain')
1225+
1 * traceSegment.setTagTop('http.response.headers.content-length', '13')
12201226
}
12211227

12221228
void 'request headers are always set when there are user tracking events'() {
@@ -1226,6 +1232,9 @@ class GatewayBridgeSpecification extends DDSpecification {
12261232
getRequestHeaders() >> [
12271233
'host': ['localhost']
12281234
]
1235+
getResponseHeaders() >> [
1236+
'content-type': ['text/plain']
1237+
]
12291238
}
12301239
final mockCtx = Stub(RequestContext) {
12311240
getData(RequestContextSlot.APPSEC) >> mockAppSecCtx
@@ -1239,6 +1248,7 @@ class GatewayBridgeSpecification extends DDSpecification {
12391248

12401249
then:
12411250
(userTracking ? 1 : 0) * traceSegment.setTagTop('http.request.headers.host', 'localhost')
1251+
1 * traceSegment.setTagTop('http.response.headers.content-type', 'text/plain')
12421252

12431253
where:
12441254
tag | userTracking

0 commit comments

Comments
 (0)