Remove obsolete field from `SecureValueRecovery2Configuration`

This commit is contained in:
Chris Eager 2023-05-19 14:30:11 -05:00 committed by Jon Chambers
parent fa8f19fd43
commit a3c37aed47
7 changed files with 4 additions and 20 deletions

View File

@ -145,7 +145,6 @@ directoryV2:
userIdTokenSharedSecret: secret://directoryV2.client.userIdTokenSharedSecret userIdTokenSharedSecret: secret://directoryV2.client.userIdTokenSharedSecret
svr2: svr2:
enabled: false
uri: svr2.example.com uri: svr2.example.com
userAuthenticationTokenSharedSecret: secret://svr2.userAuthenticationTokenSharedSecret userAuthenticationTokenSharedSecret: secret://svr2.userAuthenticationTokenSharedSecret
userIdTokenSharedSecret: secret://svr2.userIdTokenSharedSecret userIdTokenSharedSecret: secret://svr2.userIdTokenSharedSecret

View File

@ -773,7 +773,7 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
config.getRemoteConfigConfiguration().globalConfig()), config.getRemoteConfigConfiguration().globalConfig()),
new SecureBackupController(backupCredentialsGenerator, accountsManager), new SecureBackupController(backupCredentialsGenerator, accountsManager),
new SecureStorageController(storageCredentialsGenerator), new SecureStorageController(storageCredentialsGenerator),
new SecureValueRecovery2Controller(svr2CredentialsGenerator, accountsManager, config.getSvr2Configuration()), new SecureValueRecovery2Controller(svr2CredentialsGenerator, accountsManager),
new StickerController(rateLimiters, config.getCdnConfiguration().accessKey().value(), new StickerController(rateLimiters, config.getCdnConfiguration().accessKey().value(),
config.getCdnConfiguration().accessSecret().value(), config.getCdnConfiguration().region(), config.getCdnConfiguration().accessSecret().value(), config.getCdnConfiguration().region(),
config.getCdnConfiguration().bucket()), config.getCdnConfiguration().bucket()),

View File

@ -13,7 +13,6 @@ import org.whispersystems.textsecuregcm.configuration.secrets.SecretBytes;
import org.whispersystems.textsecuregcm.util.ExactlySize; import org.whispersystems.textsecuregcm.util.ExactlySize;
public record SecureValueRecovery2Configuration( public record SecureValueRecovery2Configuration(
boolean enabled,
@NotBlank String uri, @NotBlank String uri,
@ExactlySize(32) SecretBytes userAuthenticationTokenSharedSecret, @ExactlySize(32) SecretBytes userAuthenticationTokenSharedSecret,
@ExactlySize(32) SecretBytes userIdTokenSharedSecret, @ExactlySize(32) SecretBytes userIdTokenSharedSecret,

View File

@ -19,7 +19,6 @@ import javax.validation.Valid;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.ws.rs.Consumes; import javax.ws.rs.Consumes;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.NotFoundException;
import javax.ws.rs.POST; import javax.ws.rs.POST;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
@ -60,14 +59,11 @@ public class SecureValueRecovery2Controller {
private final ExternalServiceCredentialsGenerator backupServiceCredentialGenerator; private final ExternalServiceCredentialsGenerator backupServiceCredentialGenerator;
private final AccountsManager accountsManager; private final AccountsManager accountsManager;
private final boolean enabled;
public SecureValueRecovery2Controller(final ExternalServiceCredentialsGenerator backupServiceCredentialGenerator, public SecureValueRecovery2Controller(final ExternalServiceCredentialsGenerator backupServiceCredentialGenerator,
final AccountsManager accountsManager, final AccountsManager accountsManager) {
final SecureValueRecovery2Configuration cfg) {
this.backupServiceCredentialGenerator = backupServiceCredentialGenerator; this.backupServiceCredentialGenerator = backupServiceCredentialGenerator;
this.accountsManager = accountsManager; this.accountsManager = accountsManager;
this.enabled = cfg.enabled();
} }
@Timed @Timed
@ -84,9 +80,6 @@ public class SecureValueRecovery2Controller {
@ApiResponse(responseCode = "200", description = "`JSON` with generated credentials.", useReturnTypeSchema = true) @ApiResponse(responseCode = "200", description = "`JSON` with generated credentials.", useReturnTypeSchema = true)
@ApiResponse(responseCode = "401", description = "Account authentication check failed.") @ApiResponse(responseCode = "401", description = "Account authentication check failed.")
public ExternalServiceCredentials getAuth(@Auth final AuthenticatedAccount auth) { public ExternalServiceCredentials getAuth(@Auth final AuthenticatedAccount auth) {
if (!enabled) {
throw new NotFoundException();
}
return backupServiceCredentialGenerator.generateFor(auth.getAccount().getUuid().toString()); return backupServiceCredentialGenerator.generateFor(auth.getAccount().getUuid().toString());
} }

View File

@ -32,7 +32,6 @@ public class SecureValueRecovery2Client {
private final ExternalServiceCredentialsGenerator secureValueRecoveryCredentialsGenerator; private final ExternalServiceCredentialsGenerator secureValueRecoveryCredentialsGenerator;
private final URI deleteUri; private final URI deleteUri;
private final FaultTolerantHttpClient httpClient; private final FaultTolerantHttpClient httpClient;
private final boolean enabled;
@VisibleForTesting @VisibleForTesting
static final String DELETE_PATH = "/v1/delete"; static final String DELETE_PATH = "/v1/delete";
@ -53,15 +52,10 @@ public class SecureValueRecovery2Client {
.withSecurityProtocol(FaultTolerantHttpClient.SECURITY_PROTOCOL_TLS_1_2) .withSecurityProtocol(FaultTolerantHttpClient.SECURITY_PROTOCOL_TLS_1_2)
.withTrustedServerCertificates(configuration.svrCaCertificates().toArray(new String[0])) .withTrustedServerCertificates(configuration.svrCaCertificates().toArray(new String[0]))
.build(); .build();
this.enabled = configuration.enabled();
} }
public CompletableFuture<Void> deleteBackups(final UUID accountUuid) { public CompletableFuture<Void> deleteBackups(final UUID accountUuid) {
if (!enabled) {
return CompletableFuture.completedFuture(null);
}
final ExternalServiceCredentials credentials = secureValueRecoveryCredentialsGenerator.generateForUuid(accountUuid); final ExternalServiceCredentials credentials = secureValueRecoveryCredentialsGenerator.generateForUuid(accountUuid);
final HttpRequest request = HttpRequest.newBuilder() final HttpRequest request = HttpRequest.newBuilder()

View File

@ -24,7 +24,6 @@ import org.whispersystems.textsecuregcm.util.SystemMapper;
public class SecureValueRecovery2ControllerTest extends SecureValueRecoveryControllerBaseTest { public class SecureValueRecovery2ControllerTest extends SecureValueRecoveryControllerBaseTest {
private static final SecureValueRecovery2Configuration CFG = new SecureValueRecovery2Configuration( private static final SecureValueRecovery2Configuration CFG = new SecureValueRecovery2Configuration(
true,
"", "",
randomSecretBytes(32), randomSecretBytes(32),
randomSecretBytes(32), randomSecretBytes(32),
@ -40,7 +39,7 @@ public class SecureValueRecovery2ControllerTest extends SecureValueRecoveryContr
private static final AccountsManager ACCOUNTS_MANAGER = mock(AccountsManager.class); private static final AccountsManager ACCOUNTS_MANAGER = mock(AccountsManager.class);
private static final SecureValueRecovery2Controller CONTROLLER = private static final SecureValueRecovery2Controller CONTROLLER =
new SecureValueRecovery2Controller(CREDENTIAL_GENERATOR, ACCOUNTS_MANAGER, CFG); new SecureValueRecovery2Controller(CREDENTIAL_GENERATOR, ACCOUNTS_MANAGER);
private static final ResourceExtension RESOURCES = ResourceExtension.builder() private static final ResourceExtension RESOURCES = ResourceExtension.builder()
.addProvider(AuthHelper.getAuthFilter()) .addProvider(AuthHelper.getAuthFilter())

View File

@ -52,7 +52,7 @@ class SecureValueRecovery2ClientTest {
credentialsGenerator = mock(ExternalServiceCredentialsGenerator.class); credentialsGenerator = mock(ExternalServiceCredentialsGenerator.class);
httpExecutor = Executors.newSingleThreadExecutor(); httpExecutor = Executors.newSingleThreadExecutor();
final SecureValueRecovery2Configuration config = new SecureValueRecovery2Configuration(true, final SecureValueRecovery2Configuration config = new SecureValueRecovery2Configuration(
"http://localhost:" + wireMock.getPort(), "http://localhost:" + wireMock.getPort(),
randomSecretBytes(32), randomSecretBytes(32),
randomSecretBytes(32), randomSecretBytes(32),