diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/SecureStorageServiceConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/SecureStorageServiceConfiguration.java index 4a42bfbcd..9fb4e6bfc 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/SecureStorageServiceConfiguration.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/SecureStorageServiceConfiguration.java @@ -5,8 +5,6 @@ package org.whispersystems.textsecuregcm.configuration; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.annotations.VisibleForTesting; import java.util.List; import javax.validation.Valid; import javax.validation.constraints.NotBlank; @@ -17,15 +15,16 @@ import org.apache.commons.codec.binary.Hex; public record SecureStorageServiceConfiguration(@NotEmpty String userAuthenticationTokenSharedSecret, @NotBlank String uri, @NotEmpty List<@NotBlank String> storageCaCertificates, - @Valid @JsonProperty("circuitBreaker") CircuitBreakerConfiguration circuitBreakerConfig, - @Valid @JsonProperty("retry") RetryConfiguration retryConfig) { + @Valid CircuitBreakerConfiguration circuitBreaker, + @Valid RetryConfiguration retry) { - @VisibleForTesting - public SecureStorageServiceConfiguration( - final @NotEmpty String userAuthenticationTokenSharedSecret, - final @NotBlank String uri, - final @NotEmpty List<@NotBlank String> storageCaCertificates) { - this(userAuthenticationTokenSharedSecret, uri, storageCaCertificates, new CircuitBreakerConfiguration(), new RetryConfiguration()); + public SecureStorageServiceConfiguration { + if (circuitBreaker == null) { + circuitBreaker = new CircuitBreakerConfiguration(); + } + if (retry == null) { + retry = new RetryConfiguration(); + } } public byte[] decodeUserAuthenticationTokenSharedSecret() throws DecoderException { diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/securestorage/SecureStorageClient.java b/service/src/main/java/org/whispersystems/textsecuregcm/securestorage/SecureStorageClient.java index 9e65b416f..2918a5179 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/securestorage/SecureStorageClient.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/securestorage/SecureStorageClient.java @@ -40,8 +40,8 @@ public class SecureStorageClient { this.storageServiceCredentialsGenerator = storageServiceCredentialsGenerator; this.deleteUri = URI.create(configuration.uri()).resolve(DELETE_PATH); this.httpClient = FaultTolerantHttpClient.newBuilder() - .withCircuitBreaker(configuration.circuitBreakerConfig()) - .withRetry(configuration.retryConfig()) + .withCircuitBreaker(configuration.circuitBreaker()) + .withRetry(configuration.retry()) .withVersion(HttpClient.Version.HTTP_1_1) .withConnectTimeout(Duration.ofSeconds(10)) .withRedirect(HttpClient.Redirect.NEVER) diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/securestorage/SecureStorageClientTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/securestorage/SecureStorageClientTest.java index b632bba6f..81a6282a9 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/securestorage/SecureStorageClientTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/securestorage/SecureStorageClientTest.java @@ -29,6 +29,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; import org.whispersystems.textsecuregcm.auth.ExternalServiceCredentials; import org.whispersystems.textsecuregcm.auth.ExternalServiceCredentialsGenerator; +import org.whispersystems.textsecuregcm.configuration.CircuitBreakerConfiguration; +import org.whispersystems.textsecuregcm.configuration.RetryConfiguration; import org.whispersystems.textsecuregcm.configuration.SecureStorageServiceConfiguration; class SecureStorageClientTest { @@ -98,7 +100,9 @@ class SecureStorageClientTest { WIOjZOKGW690ESKCKOnFjUHVO0HpuWnT81URTuY62FXsYdVc2wE4v0E04mEbqQ0P lY6ZKNA81Lm3YADYtObmK1IUrOPo9BeIaPy0UM08SmN880Vunqa91Q== -----END CERTIFICATE----- - """)); + """), + new CircuitBreakerConfiguration(), + new RetryConfiguration()); secureStorageClient = new SecureStorageClient(credentialsGenerator, httpExecutor, config); }