Skip to content

Commit f2e3461

Browse files
authored
Merge branch 'master' into alejandro.gonzalez/Configuration-to-Disable-APM-Tracing
2 parents 6a752e1 + 1c9548c commit f2e3461

File tree

2 files changed

+39
-3
lines changed

2 files changed

+39
-3
lines changed

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

+4-3
Original file line numberDiff line numberDiff line change
@@ -280,9 +280,6 @@ private Flow<Void> onLoginEvent(
280280

281281
// update span tags
282282
segment.setTagTop("appsec.events." + eventName + ".track", true, true);
283-
if (exists != null) {
284-
segment.setTagTop("appsec.events." + eventName + ".usr.exists", exists, true);
285-
}
286283
if (metadata != null && !metadata.isEmpty()) {
287284
segment.setTagTop("appsec.events." + eventName, metadata, true);
288285
}
@@ -316,6 +313,10 @@ private Flow<Void> onLoginEvent(
316313
segment.setTagTop("_dd.appsec.user.collection_mode", mode.fullName());
317314
}
318315

316+
if (exists != null) {
317+
segment.setTagTop("appsec.events." + eventName + ".usr.exists", exists, true);
318+
}
319+
319320
// update user span tags
320321
segment.setTagTop("appsec.events." + eventName + ".usr.login", user, true);
321322

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

+35
Original file line numberDiff line numberDiff line change
@@ -1286,6 +1286,41 @@ class GatewayBridgeSpecification extends DDSpecification {
12861286
0 * eventDispatcher.publishDataEvent
12871287
}
12881288
1289+
void "test onLoginFailure (automated login events should not overwrite SDK)"() {
1290+
setup:
1291+
final firstUser = 'user1'
1292+
final secondUser = 'user2'
1293+
eventDispatcher.getDataSubscribers(_) >> nonEmptyDsInfo
1294+
1295+
when:
1296+
loginEventCB.apply(ctx, SDK, 'users.login.failure', true, firstUser, null)
1297+
1298+
then:
1299+
1 * traceSegment.setTagTop('appsec.events.users.login.failure.usr.login', firstUser, true)
1300+
1 * traceSegment.setTagTop('_dd.appsec.events.users.login.failure.sdk', true, true)
1301+
1 * traceSegment.setTagTop('_dd.appsec.user.collection_mode', 'sdk')
1302+
1 * traceSegment.setTagTop('appsec.events.users.login.failure.usr.exists', true, true)
1303+
1304+
0 * traceSegment.setTagTop('_dd.appsec.usr.login', _)
1305+
0 * traceSegment.setTagTop('_dd.appsec.events.users.login.failure.auto.mode', _, _)
1306+
1307+
1 * eventDispatcher.publishDataEvent(nonEmptyDsInfo, ctx.data, _ as DataBundle, _ as GatewayContext) >> NoopFlow.INSTANCE
1308+
1309+
when:
1310+
loginEventCB.apply(ctx, IDENTIFICATION, 'users.login.failure', false, secondUser, null)
1311+
1312+
then:
1313+
0 * traceSegment.setTagTop('appsec.events.users.login.failure.usr.login', _, _)
1314+
0 * traceSegment.setTagTop('_dd.appsec.events.users.login.failure.sdk', _, _)
1315+
0 * traceSegment.setTagTop('_dd.appsec.user.collection_mode', _)
1316+
0 * traceSegment.setTagTop('appsec.events.users.login.failure.usr.exists', _, _)
1317+
1318+
1 * traceSegment.setTagTop('_dd.appsec.usr.login', secondUser)
1319+
1 * traceSegment.setTagTop('_dd.appsec.events.users.login.failure.auto.mode', IDENTIFICATION.fullName(), true)
1320+
1321+
0 * eventDispatcher.publishDataEvent
1322+
}
1323+
12891324
void 'test configuration updates should reset cached subscriptions'() {
12901325
when:
12911326
requestSessionCB.apply(ctx, UUID.randomUUID().toString())

0 commit comments

Comments
 (0)