From 2054ab277175ea9c33193a15b6f37dfd3f6038cc Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Wed, 6 Dec 2023 11:26:06 -0500 Subject: [PATCH] Revert "Count requests with missing device capabilities" This reverts commit 6cdf8ebd2c1bfc7c3cd371aa2cc0d546fdaf3976. --- .../controllers/DeviceController.java | 28 +++---------------- .../controllers/RegistrationController.java | 10 +------ 2 files changed, 5 insertions(+), 33 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java index 968486792..4f08b3536 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java @@ -8,8 +8,6 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.net.HttpHeaders; import io.dropwizard.auth.Auth; import io.lettuce.core.SetArgs; -import io.micrometer.core.instrument.Metrics; -import io.micrometer.core.instrument.Tags; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.headers.Header; import io.swagger.v3.oas.annotations.responses.ApiResponse; @@ -61,8 +59,6 @@ import org.whispersystems.textsecuregcm.entities.LinkDeviceRequest; import org.whispersystems.textsecuregcm.entities.PreKeySignatureValidator; import org.whispersystems.textsecuregcm.identity.IdentityType; import org.whispersystems.textsecuregcm.limits.RateLimiters; -import org.whispersystems.textsecuregcm.metrics.MetricsUtil; -import org.whispersystems.textsecuregcm.metrics.UserAgentTagUtil; import org.whispersystems.textsecuregcm.redis.FaultTolerantRedisCluster; import org.whispersystems.textsecuregcm.storage.Account; import org.whispersystems.textsecuregcm.storage.AccountsManager; @@ -96,9 +92,6 @@ public class DeviceController { @VisibleForTesting static final Duration TOKEN_EXPIRATION_DURATION = Duration.ofMinutes(10); - private static final String MISSING_DEVICE_CAPABILITIES_COUNTER_NAME = - MetricsUtil.name(DeviceController.class, "missingDeviceCapabilities"); - public DeviceController(byte[] linkDeviceSecret, AccountsManager accounts, MessagesManager messages, @@ -183,7 +176,7 @@ public class DeviceController { } /** - * @deprecated callers should use {@link #linkDevice(BasicAuthorizationHeader, String, LinkDeviceRequest, ContainerRequest)} + * @deprecated callers should use {@link #linkDevice(BasicAuthorizationHeader, LinkDeviceRequest, ContainerRequest)} * instead */ @PUT @@ -194,7 +187,6 @@ public class DeviceController { @Deprecated(forRemoval = true) public DeviceResponse verifyDeviceToken(@PathParam("verification_code") String verificationCode, @HeaderParam(HttpHeaders.AUTHORIZATION) BasicAuthorizationHeader authorizationHeader, - @HeaderParam(HttpHeaders.USER_AGENT) final String userAgent, @NotNull @Valid AccountAttributes accountAttributes, @Context ContainerRequest containerRequest) throws RateLimitExceededException, DeviceLimitExceededException { @@ -203,8 +195,7 @@ public class DeviceController { verificationCode, accountAttributes, containerRequest, - Optional.empty(), - userAgent); + Optional.empty()); final Account account = accountAndDevice.first(); final Device device = accountAndDevice.second(); @@ -229,7 +220,6 @@ public class DeviceController { name = "Retry-After", description = "If present, an positive integer indicating the number of seconds before a subsequent attempt could succeed")) public DeviceResponse linkDevice(@HeaderParam(HttpHeaders.AUTHORIZATION) BasicAuthorizationHeader authorizationHeader, - @HeaderParam(HttpHeaders.USER_AGENT) final String userAgent, @NotNull @Valid LinkDeviceRequest linkDeviceRequest, @Context ContainerRequest containerRequest) throws RateLimitExceededException, DeviceLimitExceededException { @@ -238,8 +228,7 @@ public class DeviceController { linkDeviceRequest.verificationCode(), linkDeviceRequest.accountAttributes(), containerRequest, - Optional.of(linkDeviceRequest.deviceActivationRequest()), - userAgent); + Optional.of(linkDeviceRequest.deviceActivationRequest())); final Account account = accountAndDevice.first(); final Device device = accountAndDevice.second(); @@ -353,8 +342,7 @@ public class DeviceController { final String verificationCode, final AccountAttributes accountAttributes, final ContainerRequest containerRequest, - final Optional maybeDeviceActivationRequest, - final String userAgent) + final Optional maybeDeviceActivationRequest) throws RateLimitExceededException, DeviceLimitExceededException { final Optional maybeAciFromToken = checkVerificationToken(verificationCode); @@ -392,14 +380,6 @@ public class DeviceController { } final DeviceCapabilities capabilities = accountAttributes.getCapabilities(); - - if (capabilities == null) { - Metrics.counter(MISSING_DEVICE_CAPABILITIES_COUNTER_NAME, - Tags.of(UserAgentTagUtil.getPlatformTag(userAgent), - io.micrometer.core.instrument.Tag.of("atomic", String.valueOf(maybeDeviceActivationRequest.isPresent())))) - .increment(); - } - if (capabilities != null && isCapabilityDowngrade(account, capabilities)) { throw new WebApplicationException(Response.status(409).build()); } diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/RegistrationController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/RegistrationController.java index 4210a2523..13fcd1e18 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/RegistrationController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/RegistrationController.java @@ -58,12 +58,10 @@ public class RegistrationController { .register(Metrics.globalRegistry); private static final String ACCOUNT_CREATED_COUNTER_NAME = name(RegistrationController.class, "accountCreated"); - private static final String MISSING_DEVICE_CAPABILITIES_COUNTER_NAME = - name(RegistrationController.class, "missingDeviceCapabilities"); - private static final String COUNTRY_CODE_TAG_NAME = "countryCode"; private static final String REGION_CODE_TAG_NAME = "regionCode"; private static final String VERIFICATION_TYPE_TAG_NAME = "verification"; + private static final String INVALID_ACCOUNT_ATTRS_COUNTER_NAME = name(RegistrationController.class, "invalidAccountAttrs"); private final AccountsManager accounts; private final PhoneVerificationTokenManager phoneVerificationTokenManager; @@ -109,12 +107,6 @@ public class RegistrationController { final String number = authorizationHeader.getUsername(); final String password = authorizationHeader.getPassword(); - if (registrationRequest.accountAttributes().getCapabilities() == null) { - Metrics.counter(MISSING_DEVICE_CAPABILITIES_COUNTER_NAME, - Tags.of(UserAgentTagUtil.getPlatformTag(userAgent))) - .increment(); - } - RateLimiter.adaptLegacyException(() -> rateLimiters.getRegistrationLimiter().validate(number)); final PhoneVerificationRequest.VerificationType verificationType = phoneVerificationTokenManager.verify(number,