return backup, not storage, credentials for reg lock

This commit is contained in:
Jeffrey Griffin 2019-11-05 10:36:33 -08:00
parent 95c55a8ab3
commit f16b783378
5 changed files with 19 additions and 19 deletions

View File

@ -242,7 +242,7 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
DisabledPermittedAccount.class, disabledPermittedAccountAuthFilter)));
environment.jersey().register(new PolymorphicAuthValueFactoryProvider.Binder<>(ImmutableSet.of(Account.class, DisabledPermittedAccount.class)));
environment.jersey().register(new AccountController(pendingAccountsManager, accountsManager, abusiveHostRules, rateLimiters, smsSender, directoryQueue, messagesManager, turnTokenGenerator, config.getTestDevices(), recaptchaClient, gcmSender, apnSender, storageCredentialsGenerator));
environment.jersey().register(new AccountController(pendingAccountsManager, accountsManager, abusiveHostRules, rateLimiters, smsSender, directoryQueue, messagesManager, turnTokenGenerator, config.getTestDevices(), recaptchaClient, gcmSender, apnSender, backupCredentialsGenerator));
environment.jersey().register(new DeviceController(pendingDevicesManager, accountsManager, messagesManager, directoryQueue, rateLimiters, config.getMaxDevices()));
environment.jersey().register(new DirectoryController(rateLimiters, directory, directoryCredentialsGenerator));
environment.jersey().register(new ProvisioningController(rateLimiters, pushSender));

View File

@ -112,7 +112,7 @@ public class AccountController {
private final RecaptchaClient recaptchaClient;
private final GCMSender gcmSender;
private final APNSender apnSender;
private final ExternalServiceCredentialGenerator storageServiceCredentialGenerator;
private final ExternalServiceCredentialGenerator backupServiceCredentialGenerator;
public AccountController(PendingAccountsManager pendingAccounts,
AccountsManager accounts,
@ -126,7 +126,7 @@ public class AccountController {
RecaptchaClient recaptchaClient,
GCMSender gcmSender,
APNSender apnSender,
ExternalServiceCredentialGenerator storageServiceCredentialGenerator)
ExternalServiceCredentialGenerator backupServiceCredentialGenerator)
{
this.pendingAccounts = pendingAccounts;
this.accounts = accounts;
@ -140,7 +140,7 @@ public class AccountController {
this.recaptchaClient = recaptchaClient;
this.gcmSender = gcmSender;
this.apnSender = apnSender;
this.storageServiceCredentialGenerator = storageServiceCredentialGenerator;
this.backupServiceCredentialGenerator = backupServiceCredentialGenerator;
}
@Timed
@ -281,7 +281,7 @@ public class AccountController {
long timeRemaining = TimeUnit.DAYS.toMillis(7) - (System.currentTimeMillis() - existingAccount.get().getLastSeen());
Optional<ExternalServiceCredentials> credentials = existingAccount.get().getRegistrationLock().isPresent() &&
existingAccount.get().getRegistrationLockSalt().isPresent() ?
Optional.of(storageServiceCredentialGenerator.generateFor(number)) :
Optional.of(backupServiceCredentialGenerator.generateFor(number)) :
Optional.empty();
if (Util.isEmpty(accountAttributes.getPin()) &&

View File

@ -1,9 +1,9 @@
package org.whispersystems.textsecuregcm.controllers;
import com.codahale.metrics.annotation.Timed;
import org.whispersystems.textsecuregcm.auth.DisabledPermittedAccount;
import org.whispersystems.textsecuregcm.auth.ExternalServiceCredentialGenerator;
import org.whispersystems.textsecuregcm.auth.ExternalServiceCredentials;
import org.whispersystems.textsecuregcm.storage.Account;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@ -25,7 +25,7 @@ public class SecureBackupController {
@GET
@Path("/auth")
@Produces(MediaType.APPLICATION_JSON)
public ExternalServiceCredentials getAuth(@Auth DisabledPermittedAccount account) {
return backupServiceCredentialGenerator.generateFor(account.getAccount().getNumber());
public ExternalServiceCredentials getAuth(@Auth Account account) {
return backupServiceCredentialGenerator.generateFor(account.getNumber());
}
}

View File

@ -10,13 +10,13 @@ public class RegistrationLockFailure {
private long timeRemaining;
@JsonProperty
private ExternalServiceCredentials storageCredentials;
private ExternalServiceCredentials backupCredentials;
public RegistrationLockFailure() {}
public RegistrationLockFailure(long timeRemaining, ExternalServiceCredentials storageCredentials) {
this.timeRemaining = timeRemaining;
this.storageCredentials = storageCredentials;
public RegistrationLockFailure(long timeRemaining, ExternalServiceCredentials backupCredentials) {
this.timeRemaining = timeRemaining;
this.backupCredentials = backupCredentials;
}
@JsonIgnore
@ -25,7 +25,7 @@ public class RegistrationLockFailure {
}
@JsonIgnore
public ExternalServiceCredentials getStorageCredentials() {
return storageCredentials;
public ExternalServiceCredentials getBackupCredentials() {
return backupCredentials;
}
}

View File

@ -581,7 +581,7 @@ public class AccountControllerTest {
assertThat(response.getStatus()).isEqualTo(423);
RegistrationLockFailure failure = response.readEntity(RegistrationLockFailure.class);
assertThat(failure.getStorageCredentials()).isNull();
assertThat(failure.getBackupCredentials()).isNull();
verifyNoMoreInteractions(pinLimiter);
}
@ -599,10 +599,10 @@ public class AccountControllerTest {
assertThat(response.getStatus()).isEqualTo(423);
RegistrationLockFailure failure = response.readEntity(RegistrationLockFailure.class);
assertThat(failure.getStorageCredentials()).isNotNull();
assertThat(failure.getStorageCredentials().getUsername()).isEqualTo(SENDER_REG_LOCK);
assertThat(failure.getStorageCredentials().getPassword()).isNotEmpty();
assertThat(failure.getStorageCredentials().getPassword().startsWith(SENDER_REG_LOCK)).isTrue();
assertThat(failure.getBackupCredentials()).isNotNull();
assertThat(failure.getBackupCredentials().getUsername()).isEqualTo(SENDER_REG_LOCK);
assertThat(failure.getBackupCredentials().getPassword()).isNotEmpty();
assertThat(failure.getBackupCredentials().getPassword().startsWith(SENDER_REG_LOCK)).isTrue();
assertThat(failure.getTimeRemaining()).isGreaterThan(0);
verifyNoMoreInteractions(pinLimiter);