From 7f0f045f29d46d7964bdd023cb42e0cbe05aa14d Mon Sep 17 00:00:00 2001 From: ameya-signal <163888879+ameya-signal@users.noreply.github.com> Date: Thu, 21 Mar 2024 10:41:25 -0700 Subject: [PATCH] Minor cleanup of report spam endpoint (#1979) --- .../textsecuregcm/controllers/MessageController.java | 4 ++-- .../whispersystems/textsecuregcm/entities/SpamReport.java | 5 +---- .../textsecuregcm/controllers/MessageControllerTest.java | 3 ++- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java index 62ff51653..58ae90398 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java @@ -752,7 +752,7 @@ public class MessageController { @ReadOnly @Auth AuthenticatedAccount auth, @PathParam("source") String source, @PathParam("messageGuid") UUID messageGuid, - @Nullable @Valid SpamReport spamReport, + @Nullable SpamReport spamReport, @HeaderParam(HttpHeaders.USER_AGENT) String userAgent ) { @@ -786,7 +786,7 @@ public class MessageController { UUID spamReporterUuid = auth.getAccount().getUuid(); - // spam report token is optional, but if provided ensure it is valid base64 and non-empty. + // spam report token is optional, but if provided ensure it is non-empty. final Optional maybeSpamReportToken = Optional.ofNullable(spamReport) .flatMap(r -> Optional.ofNullable(r.token())) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/entities/SpamReport.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/SpamReport.java index 185abbff6..83782f60c 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/entities/SpamReport.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/entities/SpamReport.java @@ -1,12 +1,9 @@ package org.whispersystems.textsecuregcm.entities; -import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import org.whispersystems.textsecuregcm.util.ByteArrayAdapter; import javax.annotation.Nullable; -import javax.validation.Valid; -import javax.validation.constraints.NotEmpty; +import org.whispersystems.textsecuregcm.util.ByteArrayAdapter; public record SpamReport(@JsonSerialize(using = ByteArrayAdapter.Serializing.class) @JsonDeserialize(using = ByteArrayAdapter.Deserializing.class) diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/MessageControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/MessageControllerTest.java index 3b813ff33..1ed2e29ea 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/MessageControllerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/MessageControllerTest.java @@ -904,7 +904,8 @@ class MessageControllerTest { Arguments.of(Entity.json("null"), true), Arguments.of(Entity.json("{\"weird\": 123}"), true), Arguments.of(Entity.json("\"weirder\""), false), - Arguments.of(Entity.json("weirdest"), false) + Arguments.of(Entity.json("weirdest"), false), + Arguments.of(Entity.json("{\"token\":\"InvalidBase64[][][][]\"}"), false) ); }