Change type of Cdn3StorageManagerConfiguration.clientSecret to SecretString

This commit is contained in:
Ravi Khadiwala 2024-01-08 15:55:06 -06:00 committed by ravi-signal
parent ba0c6be3e3
commit a62a6c1cb6
4 changed files with 14 additions and 5 deletions

View File

@ -65,6 +65,8 @@ fcm.credentials: |
cdn.accessKey: test # AWS Access Key ID cdn.accessKey: test # AWS Access Key ID
cdn.accessSecret: test # AWS Access Secret cdn.accessSecret: test # AWS Access Secret
cdn3StorageManager.clientSecret: test
unidentifiedDelivery.certificate: ABCD1234 unidentifiedDelivery.certificate: ABCD1234
unidentifiedDelivery.privateKey: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789AAAAAAA unidentifiedDelivery.privateKey: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789AAAAAAA

View File

@ -65,7 +65,7 @@ public class Cdn3RemoteStorageManager implements RemoteStorageManager {
// strip trailing "/" for easier URI construction // strip trailing "/" for easier URI construction
this.storageManagerBaseUrl = StringUtils.removeEnd(configuration.baseUri(), "/"); this.storageManagerBaseUrl = StringUtils.removeEnd(configuration.baseUri(), "/");
this.clientId = configuration.clientId(); this.clientId = configuration.clientId();
this.clientSecret = configuration.clientSecret(); this.clientSecret = configuration.clientSecret().value();
// Client used to read/write to cdn // Client used to read/write to cdn
this.cdnHttpClient = FaultTolerantHttpClient.newBuilder() this.cdnHttpClient = FaultTolerantHttpClient.newBuilder()

View File

@ -1,6 +1,9 @@
package org.whispersystems.textsecuregcm.configuration; package org.whispersystems.textsecuregcm.configuration;
import org.whispersystems.textsecuregcm.configuration.secrets.SecretString;
import javax.validation.constraints.NotNull;
public record Cdn3StorageManagerConfiguration( public record Cdn3StorageManagerConfiguration(
String baseUri, @NotNull String baseUri,
String clientId, @NotNull String clientId,
String clientSecret) {} @NotNull SecretString clientSecret) {}

View File

@ -42,6 +42,7 @@ import org.junit.jupiter.params.provider.ValueSource;
import org.whispersystems.textsecuregcm.configuration.Cdn3StorageManagerConfiguration; import org.whispersystems.textsecuregcm.configuration.Cdn3StorageManagerConfiguration;
import org.whispersystems.textsecuregcm.configuration.CircuitBreakerConfiguration; import org.whispersystems.textsecuregcm.configuration.CircuitBreakerConfiguration;
import org.whispersystems.textsecuregcm.configuration.RetryConfiguration; import org.whispersystems.textsecuregcm.configuration.RetryConfiguration;
import org.whispersystems.textsecuregcm.configuration.secrets.SecretString;
import org.whispersystems.textsecuregcm.util.CompletableFutureTestUtil; import org.whispersystems.textsecuregcm.util.CompletableFutureTestUtil;
import org.whispersystems.textsecuregcm.util.SystemMapper; import org.whispersystems.textsecuregcm.util.SystemMapper;
import org.whispersystems.textsecuregcm.util.TestRandomUtil; import org.whispersystems.textsecuregcm.util.TestRandomUtil;
@ -71,7 +72,10 @@ public class Cdn3RemoteStorageManagerTest {
new CircuitBreakerConfiguration(), new CircuitBreakerConfiguration(),
new RetryConfiguration(), new RetryConfiguration(),
Collections.emptyList(), Collections.emptyList(),
new Cdn3StorageManagerConfiguration(wireMock.url("storage-manager/"), "clientId", "clientSecret")); new Cdn3StorageManagerConfiguration(
wireMock.url("storage-manager/"),
"clientId",
new SecretString("clientSecret")));
wireMock.stubFor(get(urlEqualTo("/cdn2/source/small")) wireMock.stubFor(get(urlEqualTo("/cdn2/source/small"))
.willReturn(aResponse() .willReturn(aResponse()