diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java index 1ed735242..aeb517396 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java @@ -894,7 +894,7 @@ public class WhisperServerService extends Application[] EMPTY_FUTURE_ARRAY = new CompletableFuture[0]; - public KeysController(RateLimiters rateLimiters, KeysManager keysManager, AccountsManager accounts, ClientReleaseManager clientReleaseManager) { + public KeysController(RateLimiters rateLimiters, KeysManager keysManager, AccountsManager accounts) { this.rateLimiters = rateLimiters; this.keysManager = keysManager; this.accounts = accounts; - this.clientReleaseManager = clientReleaseManager; } @GET @@ -285,26 +282,14 @@ public class KeysController { final ECPreKey unsignedEcPreKey = unsignedEcPreKeyFuture.join().orElse(null); final ECSignedPreKey signedEcPreKey = signedEcPreKeyFuture.join().orElse(null); - Tags tags = Tags.of( - Tag.of(PRIMARY_DEVICE_TAG_NAME, String.valueOf(device.isPrimary())), - UserAgentTagUtil.getPlatformTag(userAgent), - Tag.of("targetPlatform", getDevicePlatform(device).map(Enum::name).orElse("unknown")), - Tag.of(IDENTITY_TYPE_TAG_NAME, targetIdentifier.identityType().name()), - Tag.of("isStale", String.valueOf(isDeviceStale(device))), - Tag.of("oneTimeEcKeyAvailable", String.valueOf(unsignedEcPreKey != null)), - Tag.of("authenticationType", auth.isPresent() ? "authenticated" : "anonymous")); - - if (auth.isPresent()) { - tags = tags.and(Tag.of("targetIsSelf", String.valueOf(auth.get().getAccount().getUuid().equals(target.getUuid())))); - } - - final Optional maybeClientVersionTag = UserAgentTagUtil.getClientVersionTag(userAgent, clientReleaseManager); - - if (maybeClientVersionTag.isPresent()) { - tags = tags.and(maybeClientVersionTag.get()); - } - - Metrics.counter(GET_KEYS_COUNTER_NAME, tags).increment(); + Metrics.counter(GET_KEYS_COUNTER_NAME, Tags.of( + Tag.of(PRIMARY_DEVICE_TAG_NAME, String.valueOf(device.isPrimary())), + UserAgentTagUtil.getPlatformTag(userAgent), + Tag.of("targetPlatform", getDevicePlatform(device).map(Enum::name).orElse("unknown")), + Tag.of(IDENTITY_TYPE_TAG_NAME, targetIdentifier.identityType().name()), + Tag.of("isStale", String.valueOf(isDeviceStale(device))), + Tag.of("oneTimeEcKeyAvailable", String.valueOf(unsignedEcPreKey != null)))) + .increment(); if (signedEcPreKey != null || unsignedEcPreKey != null || pqPreKey != null) { final int registrationId = switch (targetIdentifier.identityType()) { diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/KeysControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/KeysControllerTest.java index 86fea1855..1e76cbceb 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/KeysControllerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/KeysControllerTest.java @@ -32,6 +32,7 @@ import java.util.Optional; import java.util.OptionalInt; import java.util.UUID; import java.util.concurrent.CompletableFuture; +import java.util.function.Consumer; import javax.ws.rs.client.Entity; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -63,7 +64,6 @@ import org.whispersystems.textsecuregcm.mappers.RateLimitExceededExceptionMapper import org.whispersystems.textsecuregcm.mappers.ServerRejectedExceptionMapper; import org.whispersystems.textsecuregcm.storage.Account; import org.whispersystems.textsecuregcm.storage.AccountsManager; -import org.whispersystems.textsecuregcm.storage.ClientReleaseManager; import org.whispersystems.textsecuregcm.storage.Device; import org.whispersystems.textsecuregcm.storage.KeysManager; import org.whispersystems.textsecuregcm.tests.util.AccountsHelper; @@ -122,10 +122,9 @@ class KeysControllerTest { private final ECSignedPreKey VALID_DEVICE_SIGNED_KEY = KeysHelper.signedECPreKey(89898, IDENTITY_KEY_PAIR); private final ECSignedPreKey VALID_DEVICE_PNI_SIGNED_KEY = KeysHelper.signedECPreKey(7777, PNI_IDENTITY_KEY_PAIR); - private final static KeysManager KEYS = mock(KeysManager.class); - private final static AccountsManager accounts = mock(AccountsManager.class); - private final static Account existsAccount = mock(Account.class); - private final static ClientReleaseManager clientReleaseManager = mock(ClientReleaseManager.class); + private final static KeysManager KEYS = mock(KeysManager.class ); + private final static AccountsManager accounts = mock(AccountsManager.class ); + private final static Account existsAccount = mock(Account.class ); private static final RateLimiters rateLimiters = mock(RateLimiters.class); private static final RateLimiter rateLimiter = mock(RateLimiter.class ); @@ -137,7 +136,7 @@ class KeysControllerTest { .addProvider(new AuthValueFactoryProvider.Binder<>(AuthenticatedAccount.class)) .setTestContainerFactory(new GrizzlyWebTestContainerFactory()) .addResource(new ServerRejectedExceptionMapper()) - .addResource(new KeysController(rateLimiters, KEYS, accounts, clientReleaseManager)) + .addResource(new KeysController(rateLimiters, KEYS, accounts)) .addResource(new RateLimitExceededExceptionMapper()) .build(); @@ -277,8 +276,6 @@ class KeysControllerTest { when(KEYS.getEcSignedPreKey(AuthHelper.VALID_PNI, AuthHelper.VALID_DEVICE.getId())) .thenReturn(CompletableFuture.completedFuture(Optional.of(VALID_DEVICE_PNI_SIGNED_KEY))); - - when(clientReleaseManager.isVersionActive(any(), any())).thenReturn(true); } @AfterEach