return backup, not storage, credentials for reg lock
This commit is contained in:
parent
95c55a8ab3
commit
f16b783378
|
@ -242,7 +242,7 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
||||||
DisabledPermittedAccount.class, disabledPermittedAccountAuthFilter)));
|
DisabledPermittedAccount.class, disabledPermittedAccountAuthFilter)));
|
||||||
environment.jersey().register(new PolymorphicAuthValueFactoryProvider.Binder<>(ImmutableSet.of(Account.class, DisabledPermittedAccount.class)));
|
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 DeviceController(pendingDevicesManager, accountsManager, messagesManager, directoryQueue, rateLimiters, config.getMaxDevices()));
|
||||||
environment.jersey().register(new DirectoryController(rateLimiters, directory, directoryCredentialsGenerator));
|
environment.jersey().register(new DirectoryController(rateLimiters, directory, directoryCredentialsGenerator));
|
||||||
environment.jersey().register(new ProvisioningController(rateLimiters, pushSender));
|
environment.jersey().register(new ProvisioningController(rateLimiters, pushSender));
|
||||||
|
|
|
@ -112,7 +112,7 @@ public class AccountController {
|
||||||
private final RecaptchaClient recaptchaClient;
|
private final RecaptchaClient recaptchaClient;
|
||||||
private final GCMSender gcmSender;
|
private final GCMSender gcmSender;
|
||||||
private final APNSender apnSender;
|
private final APNSender apnSender;
|
||||||
private final ExternalServiceCredentialGenerator storageServiceCredentialGenerator;
|
private final ExternalServiceCredentialGenerator backupServiceCredentialGenerator;
|
||||||
|
|
||||||
public AccountController(PendingAccountsManager pendingAccounts,
|
public AccountController(PendingAccountsManager pendingAccounts,
|
||||||
AccountsManager accounts,
|
AccountsManager accounts,
|
||||||
|
@ -126,7 +126,7 @@ public class AccountController {
|
||||||
RecaptchaClient recaptchaClient,
|
RecaptchaClient recaptchaClient,
|
||||||
GCMSender gcmSender,
|
GCMSender gcmSender,
|
||||||
APNSender apnSender,
|
APNSender apnSender,
|
||||||
ExternalServiceCredentialGenerator storageServiceCredentialGenerator)
|
ExternalServiceCredentialGenerator backupServiceCredentialGenerator)
|
||||||
{
|
{
|
||||||
this.pendingAccounts = pendingAccounts;
|
this.pendingAccounts = pendingAccounts;
|
||||||
this.accounts = accounts;
|
this.accounts = accounts;
|
||||||
|
@ -140,7 +140,7 @@ public class AccountController {
|
||||||
this.recaptchaClient = recaptchaClient;
|
this.recaptchaClient = recaptchaClient;
|
||||||
this.gcmSender = gcmSender;
|
this.gcmSender = gcmSender;
|
||||||
this.apnSender = apnSender;
|
this.apnSender = apnSender;
|
||||||
this.storageServiceCredentialGenerator = storageServiceCredentialGenerator;
|
this.backupServiceCredentialGenerator = backupServiceCredentialGenerator;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Timed
|
@Timed
|
||||||
|
@ -281,7 +281,7 @@ public class AccountController {
|
||||||
long timeRemaining = TimeUnit.DAYS.toMillis(7) - (System.currentTimeMillis() - existingAccount.get().getLastSeen());
|
long timeRemaining = TimeUnit.DAYS.toMillis(7) - (System.currentTimeMillis() - existingAccount.get().getLastSeen());
|
||||||
Optional<ExternalServiceCredentials> credentials = existingAccount.get().getRegistrationLock().isPresent() &&
|
Optional<ExternalServiceCredentials> credentials = existingAccount.get().getRegistrationLock().isPresent() &&
|
||||||
existingAccount.get().getRegistrationLockSalt().isPresent() ?
|
existingAccount.get().getRegistrationLockSalt().isPresent() ?
|
||||||
Optional.of(storageServiceCredentialGenerator.generateFor(number)) :
|
Optional.of(backupServiceCredentialGenerator.generateFor(number)) :
|
||||||
Optional.empty();
|
Optional.empty();
|
||||||
|
|
||||||
if (Util.isEmpty(accountAttributes.getPin()) &&
|
if (Util.isEmpty(accountAttributes.getPin()) &&
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package org.whispersystems.textsecuregcm.controllers;
|
package org.whispersystems.textsecuregcm.controllers;
|
||||||
|
|
||||||
import com.codahale.metrics.annotation.Timed;
|
import com.codahale.metrics.annotation.Timed;
|
||||||
import org.whispersystems.textsecuregcm.auth.DisabledPermittedAccount;
|
|
||||||
import org.whispersystems.textsecuregcm.auth.ExternalServiceCredentialGenerator;
|
import org.whispersystems.textsecuregcm.auth.ExternalServiceCredentialGenerator;
|
||||||
import org.whispersystems.textsecuregcm.auth.ExternalServiceCredentials;
|
import org.whispersystems.textsecuregcm.auth.ExternalServiceCredentials;
|
||||||
|
import org.whispersystems.textsecuregcm.storage.Account;
|
||||||
|
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
|
@ -25,7 +25,7 @@ public class SecureBackupController {
|
||||||
@GET
|
@GET
|
||||||
@Path("/auth")
|
@Path("/auth")
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
public ExternalServiceCredentials getAuth(@Auth DisabledPermittedAccount account) {
|
public ExternalServiceCredentials getAuth(@Auth Account account) {
|
||||||
return backupServiceCredentialGenerator.generateFor(account.getAccount().getNumber());
|
return backupServiceCredentialGenerator.generateFor(account.getNumber());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,13 +10,13 @@ public class RegistrationLockFailure {
|
||||||
private long timeRemaining;
|
private long timeRemaining;
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private ExternalServiceCredentials storageCredentials;
|
private ExternalServiceCredentials backupCredentials;
|
||||||
|
|
||||||
public RegistrationLockFailure() {}
|
public RegistrationLockFailure() {}
|
||||||
|
|
||||||
public RegistrationLockFailure(long timeRemaining, ExternalServiceCredentials storageCredentials) {
|
public RegistrationLockFailure(long timeRemaining, ExternalServiceCredentials backupCredentials) {
|
||||||
this.timeRemaining = timeRemaining;
|
this.timeRemaining = timeRemaining;
|
||||||
this.storageCredentials = storageCredentials;
|
this.backupCredentials = backupCredentials;
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
|
@ -25,7 +25,7 @@ public class RegistrationLockFailure {
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
public ExternalServiceCredentials getStorageCredentials() {
|
public ExternalServiceCredentials getBackupCredentials() {
|
||||||
return storageCredentials;
|
return backupCredentials;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -581,7 +581,7 @@ public class AccountControllerTest {
|
||||||
assertThat(response.getStatus()).isEqualTo(423);
|
assertThat(response.getStatus()).isEqualTo(423);
|
||||||
|
|
||||||
RegistrationLockFailure failure = response.readEntity(RegistrationLockFailure.class);
|
RegistrationLockFailure failure = response.readEntity(RegistrationLockFailure.class);
|
||||||
assertThat(failure.getStorageCredentials()).isNull();
|
assertThat(failure.getBackupCredentials()).isNull();
|
||||||
|
|
||||||
verifyNoMoreInteractions(pinLimiter);
|
verifyNoMoreInteractions(pinLimiter);
|
||||||
}
|
}
|
||||||
|
@ -599,10 +599,10 @@ public class AccountControllerTest {
|
||||||
assertThat(response.getStatus()).isEqualTo(423);
|
assertThat(response.getStatus()).isEqualTo(423);
|
||||||
|
|
||||||
RegistrationLockFailure failure = response.readEntity(RegistrationLockFailure.class);
|
RegistrationLockFailure failure = response.readEntity(RegistrationLockFailure.class);
|
||||||
assertThat(failure.getStorageCredentials()).isNotNull();
|
assertThat(failure.getBackupCredentials()).isNotNull();
|
||||||
assertThat(failure.getStorageCredentials().getUsername()).isEqualTo(SENDER_REG_LOCK);
|
assertThat(failure.getBackupCredentials().getUsername()).isEqualTo(SENDER_REG_LOCK);
|
||||||
assertThat(failure.getStorageCredentials().getPassword()).isNotEmpty();
|
assertThat(failure.getBackupCredentials().getPassword()).isNotEmpty();
|
||||||
assertThat(failure.getStorageCredentials().getPassword().startsWith(SENDER_REG_LOCK)).isTrue();
|
assertThat(failure.getBackupCredentials().getPassword().startsWith(SENDER_REG_LOCK)).isTrue();
|
||||||
assertThat(failure.getTimeRemaining()).isGreaterThan(0);
|
assertThat(failure.getTimeRemaining()).isGreaterThan(0);
|
||||||
|
|
||||||
verifyNoMoreInteractions(pinLimiter);
|
verifyNoMoreInteractions(pinLimiter);
|
||||||
|
|
Loading…
Reference in New Issue