From 5c31ef43c92e81784f02a31d41cfdd7419c12b1c Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Wed, 2 Aug 2023 14:33:28 -0400 Subject: [PATCH] Send an HTTP/440 response instead of an HTTP/502 if an upstream provider rejects a "send verification code" request --- .../mappers/RegistrationServiceSenderExceptionMapper.java | 4 +++- .../textsecuregcm/controllers/VerificationControllerTest.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/mappers/RegistrationServiceSenderExceptionMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/mappers/RegistrationServiceSenderExceptionMapper.java index f0ee5fd3d..8c753b274 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/mappers/RegistrationServiceSenderExceptionMapper.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/mappers/RegistrationServiceSenderExceptionMapper.java @@ -12,9 +12,11 @@ import org.whispersystems.textsecuregcm.registration.RegistrationServiceSenderEx public class RegistrationServiceSenderExceptionMapper implements ExceptionMapper { + public static int REMOTE_SERVICE_REJECTED_REQUEST_STATUS = 440; + @Override public Response toResponse(final RegistrationServiceSenderException exception) { - return Response.status(Response.Status.BAD_GATEWAY) + return Response.status(REMOTE_SERVICE_REJECTED_REQUEST_STATUS) .entity(new SendVerificationCodeFailureResponse(exception.getReason(), exception.isPermanent())) .build(); } diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/VerificationControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/VerificationControllerTest.java index dfb50292a..c5384d8e3 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/VerificationControllerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/VerificationControllerTest.java @@ -1071,7 +1071,7 @@ class VerificationControllerTest { .request() .header(HttpHeaders.X_FORWARDED_FOR, "127.0.0.1"); try (Response response = request.post(Entity.json(requestVerificationCodeJson("voice", "ios")))) { - assertEquals(HttpStatus.SC_BAD_GATEWAY, response.getStatus()); + assertEquals(RegistrationServiceSenderExceptionMapper.REMOTE_SERVICE_REJECTED_REQUEST_STATUS, response.getStatus()); final Map responseMap = response.readEntity(Map.class);