diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java index dd06be112..0e7487641 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java @@ -638,7 +638,7 @@ public class WhisperServerService extends Application new Pair<>(account, account.getDevice(nextDeviceId).orElseThrow())); }) - .thenCompose(updatedAccountAndDevice -> rateLimitCluster.withCluster(connection -> - connection.async().set(getUsedTokenKey(linkDeviceToken), "", new SetArgs().ex(LINK_DEVICE_TOKEN_EXPIRATION_DURATION))) - .thenApply(ignored -> updatedAccountAndDevice)) .thenCompose(updatedAccountAndDevice -> redisDeleteAsync(updatedAccountAndDevice.first()) .thenApply(ignored -> updatedAccountAndDevice)) .exceptionallyCompose(throwable -> { @@ -412,20 +405,13 @@ public class AccountsManager { /** * Checks that a device-linking token is valid and returns the account identifier from the token if so, or empty if - * the token was invalid or has already been used + * the token was invalid * * @param token the device-linking token to check * - * @return the account identifier from a valid token or empty if the token was invalid or already used + * @return the account identifier from a valid token or empty if the token was invalid */ public Optional checkDeviceLinkingToken(final String token) { - final boolean tokenUsed = rateLimitCluster.withCluster(connection -> - connection.sync().get(getUsedTokenKey(token)) != null); - - if (tokenUsed) { - return Optional.empty(); - } - final String[] claimsAndSignature = token.split(":", 2); if (claimsAndSignature.length != 2) { @@ -476,10 +462,6 @@ public class AccountsManager { return Optional.of(aci); } - private static String getUsedTokenKey(final String token) { - return "usedToken::" + token; - } - public CompletableFuture removeDevice(final Account account, final byte deviceId) { if (deviceId == Device.PRIMARY_ID) { throw new IllegalArgumentException("Cannot remove primary device"); diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/workers/CommandDependencies.java b/service/src/main/java/org/whispersystems/textsecuregcm/workers/CommandDependencies.java index 9e4a66228..e639771a3 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/workers/CommandDependencies.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/workers/CommandDependencies.java @@ -226,7 +226,7 @@ record CommandDependencies( ClientPublicKeysManager clientPublicKeysManager = new ClientPublicKeysManager(clientPublicKeys, accountLockManager, accountLockExecutor); AccountsManager accountsManager = new AccountsManager(accounts, phoneNumberIdentifiers, cacheCluster, - rateLimitersCluster, accountLockManager, keys, messagesManager, profilesManager, + accountLockManager, keys, messagesManager, profilesManager, secureStorageClient, secureValueRecovery2Client, clientPresenceManager, registrationRecoveryPasswordsManager, clientPublicKeysManager, accountLockExecutor, clientPresenceExecutor, clock, configuration.getLinkDeviceSecretConfiguration().secret().value(), dynamicConfigurationManager); diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountCreationDeletionIntegrationTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountCreationDeletionIntegrationTest.java index 37ea07312..0beec88b0 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountCreationDeletionIntegrationTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountCreationDeletionIntegrationTest.java @@ -142,7 +142,6 @@ public class AccountCreationDeletionIntegrationTest { accounts, phoneNumberIdentifiers, CACHE_CLUSTER_EXTENSION.getRedisCluster(), - CACHE_CLUSTER_EXTENSION.getRedisCluster(), accountLockManager, keysManager, messagesManager, diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerChangeNumberIntegrationTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerChangeNumberIntegrationTest.java index cf03a4b81..e2204109d 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerChangeNumberIntegrationTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerChangeNumberIntegrationTest.java @@ -137,7 +137,6 @@ class AccountsManagerChangeNumberIntegrationTest { accounts, phoneNumberIdentifiers, CACHE_CLUSTER_EXTENSION.getRedisCluster(), - CACHE_CLUSTER_EXTENSION.getRedisCluster(), accountLockManager, keysManager, messagesManager, diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerConcurrentModificationIntegrationTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerConcurrentModificationIntegrationTest.java index 2c99831c1..b7362696d 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerConcurrentModificationIntegrationTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerConcurrentModificationIntegrationTest.java @@ -124,7 +124,6 @@ class AccountsManagerConcurrentModificationIntegrationTest { accounts, phoneNumberIdentifiers, RedisClusterHelper.builder().stringCommands(commands).build(), - RedisClusterHelper.builder().stringCommands(commands).build(), accountLockManager, mock(KeysManager.class), mock(MessagesManager.class), diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerTest.java index 1d8e93b4d..744774628 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerTest.java @@ -239,7 +239,6 @@ class AccountsManagerTest { accounts, phoneNumberIdentifiers, redisCluster, - redisCluster, accountLockManager, keysManager, messagesManager, diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerUsernameIntegrationTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerUsernameIntegrationTest.java index d2de40cd2..58cdaf678 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerUsernameIntegrationTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountsManagerUsernameIntegrationTest.java @@ -137,7 +137,6 @@ class AccountsManagerUsernameIntegrationTest { accounts, phoneNumberIdentifiers, CACHE_CLUSTER_EXTENSION.getRedisCluster(), - CACHE_CLUSTER_EXTENSION.getRedisCluster(), accountLockManager, keysManager, messageManager, diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AddRemoveDeviceIntegrationTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AddRemoveDeviceIntegrationTest.java index b65258e76..2da5a37b2 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AddRemoveDeviceIntegrationTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AddRemoveDeviceIntegrationTest.java @@ -132,7 +132,6 @@ public class AddRemoveDeviceIntegrationTest { accounts, phoneNumberIdentifiers, CACHE_CLUSTER_EXTENSION.getRedisCluster(), - CACHE_CLUSTER_EXTENSION.getRedisCluster(), accountLockManager, keysManager, messagesManager,