Skip to content

Commit aaf58d9

Browse files
authored
Change validation id length to 250 (#492)
1 parent 6e63305 commit aaf58d9

File tree

2 files changed

+37
-9
lines changed

2 files changed

+37
-9
lines changed

src/main/java/com/uid2/shared/audit/Audit.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -196,13 +196,21 @@ private boolean validateNoSQL(String fieldValue, String propertyName) {
196196
}
197197
}
198198

199-
private boolean validateId(String uidInstanceId, String propertyName) {
200-
if(uidInstanceId.length() < 250 && validateNoSecrets(uidInstanceId, propertyName) && validateNoSQL(uidInstanceId, propertyName) ) {
201-
return true;
202-
} else {
203-
toJsonValidationErrorMessageBuilder.append(String.format("Malformed %s found in the audit log. ", propertyName));
199+
private boolean validateId(String uidId, String propertyName) {
200+
if (uidId.length() > 250) {
201+
toJsonValidationErrorMessageBuilder.append(String.format("Malformed %s found in the audit log: length exceeds 250 characters. ", propertyName));
202+
return false;
203+
}
204+
if(!validateNoSecrets(uidId, propertyName)) {
205+
toJsonValidationErrorMessageBuilder.append(String.format("Malformed %s found in the audit log: it contains secrets. ", propertyName));
206+
return false;
207+
}
208+
209+
if(!validateNoSQL(uidId, propertyName) ) {
210+
toJsonValidationErrorMessageBuilder.append(String.format("Malformed %s found in the audit log: it contains SQL statement. ", propertyName));
204211
return false;
205212
}
213+
return true;
206214
}
207215

208216
private String getLogIdentifier(JsonObject logObject) {

src/test/java/com/uid2/shared/audit/AuditTest.java

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public class AuditTest {
4848
private String UID_INSTANCE_ID_FROM_PROD = "uid2-prod-use2-operator-6bb87b7fd-n4smk-90527e73fbffa91c";
4949
private String UID_INSTANCE_ID_FROM_AWS = "aws-aasdadada-ami-12312311321-v9p6t-a2cf5882f000d7b2";
5050
private String MALFORMED_ID = "uid2-prod-SELECT * FROM usersUID2-O-P-AB12cd34EF-zyX9_abCDEFghijklMNOPQRSTuvwxYZ0123";
51+
private String MALFORMED_SQL_ID = "uid2-prod-SELECT * FROM usersUID2-O-P-AB12cd";
5152

5253

5354
@BeforeEach
@@ -439,7 +440,7 @@ public void testTraceId() throws JsonProcessingException {
439440
}
440441

441442
@Test
442-
public void testMalformedTraceId() {
443+
public void testMalformedTraceIdWithSecret() {
443444
Mockito.when(mockRequest.getHeader(AMZN_TRACE_ID_HEADER)).thenReturn(MALFORMED_ID);
444445
AuditParams params = new AuditParams();
445446

@@ -452,7 +453,26 @@ public void testMalformedTraceId() {
452453
assertThat(messages).noneMatch(msg -> msg.contains(MALFORMED_ID));
453454

454455
boolean errorLogged = listAppender.list.stream()
455-
.anyMatch(event -> event.getLevel() == Level.ERROR && event.getFormattedMessage().contains("Malformed trace_id found in the audit log.") && event.getFormattedMessage().contains("Malformed uid_trace_id found in the audit log."));
456+
.anyMatch(event -> event.getLevel() == Level.ERROR && event.getFormattedMessage().contains("Malformed trace_id found in the audit log: it contains secrets. ") && event.getFormattedMessage().contains("Malformed uid_trace_id found in the audit log: it contains secrets. "));
457+
458+
assertThat(errorLogged).isTrue();
459+
}
460+
461+
@Test
462+
public void testMalformedTraceIdWithSQL() {
463+
Mockito.when(mockRequest.getHeader(AMZN_TRACE_ID_HEADER)).thenReturn(MALFORMED_SQL_ID);
464+
AuditParams params = new AuditParams();
465+
466+
new Audit("admin").log(mockCtx, params);
467+
468+
List<String> messages = listAppender.list.stream()
469+
.map(ILoggingEvent::getFormattedMessage)
470+
.toList();
471+
472+
assertThat(messages).noneMatch(msg -> msg.contains(MALFORMED_SQL_ID));
473+
474+
boolean errorLogged = listAppender.list.stream()
475+
.anyMatch(event -> event.getLevel() == Level.ERROR && event.getFormattedMessage().contains("Malformed trace_id found in the audit log: it contains SQL statement. ") && event.getFormattedMessage().contains("Malformed uid_trace_id found in the audit log: it contains SQL statement. "));
456476

457477
assertThat(errorLogged).isTrue();
458478
}
@@ -492,7 +512,7 @@ public void testMalformedUIDTraceId() {
492512
assertThat(messages).noneMatch(msg -> msg.contains(UID_TRACE_ID));
493513

494514
boolean errorLogged = listAppender.list.stream()
495-
.anyMatch(event -> event.getLevel() == Level.ERROR && event.getFormattedMessage().contains("Malformed uid_trace_id found in the audit log."));
515+
.anyMatch(event -> event.getLevel() == Level.ERROR && event.getFormattedMessage().contains("Malformed uid_trace_id found in the audit log: it contains secrets. "));
496516

497517
assertThat(errorLogged).isTrue();
498518
}
@@ -511,7 +531,7 @@ public void testMalformedUIDInstanceId() {
511531
assertThat(messages).noneMatch(msg -> msg.contains(TRACE_ID));
512532

513533
boolean errorLogged = listAppender.list.stream()
514-
.anyMatch(event -> event.getLevel() == Level.ERROR && event.getFormattedMessage().contains("Malformed uid_instance_id found in the audit log. "));
534+
.anyMatch(event -> event.getLevel() == Level.ERROR && event.getFormattedMessage().contains("Malformed uid_instance_id found in the audit log: it contains secrets. "));
515535

516536
assertThat(errorLogged).isTrue();
517537
}

0 commit comments

Comments
 (0)