Skip to content

Commit 73725e9

Browse files
authored
Avoid injection of a possibly-null string value if thee Valkey cert key doesn't exist (#3055)
1 parent c3f8ec8 commit 73725e9

2 files changed

Lines changed: 9 additions & 9 deletions

File tree

core/src/main/java/google/registry/cache/CacheModule.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,15 @@ public final class CacheModule {
6060
public static Optional<UnifiedJedis> provideJedis(
6161
@ApplicationDefaultCredential GoogleCredentialsBundle credentialsBundle,
6262
@Config("valkeyHostsAndPorts") Optional<ImmutableList<String>> valkeyHostsAndPorts,
63-
@Config("valkeySslSocketFactory") SSLSocketFactory valkeySslSocketFactory) {
64-
if (valkeyHostsAndPorts.map(ImmutableList::isEmpty).orElse(true)) {
63+
@Config("valkeyCertificateAuthority") Optional<String> valkeyCertificateAuthority) {
64+
if (valkeyHostsAndPorts.map(ImmutableList::isEmpty).orElse(true)
65+
|| valkeyCertificateAuthority.isEmpty()) {
6566
return Optional.empty();
6667
}
6768
ImmutableSet<HostAndPort> hostsAndPorts =
6869
valkeyHostsAndPorts.get().stream().map(HostAndPort::from).collect(toImmutableSet());
70+
SSLSocketFactory valkeySslSocketFactory =
71+
createValkeySslSocketFactory(valkeyCertificateAuthority.get());
6972
JedisClientConfig clientConfig =
7073
DefaultJedisClientConfig.builder()
7174
.ssl(true)
@@ -111,11 +114,7 @@ public static HostCache provideHostCache(
111114
return new MultilayerHostCache(jedisClient.get(), cacheMetrics);
112115
}
113116

114-
@Provides
115-
@Singleton
116-
@Config("valkeySslSocketFactory")
117-
static SSLSocketFactory provideValkeySslSocketFactory(
118-
@Config("valkeyCertificateAuthority") String valkeyCertificateAuthority) {
117+
private static SSLSocketFactory createValkeySslSocketFactory(String valkeyCertificateAuthority) {
119118
try {
120119
ImmutableList<X509Certificate> trustedCerts =
121120
CertificateFactory.getInstance("X.509")

core/src/main/java/google/registry/keyring/KeyringModule.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import google.registry.keyring.api.Keyring;
2323
import google.registry.keyring.secretmanager.SecretManagerKeyring;
2424
import jakarta.inject.Singleton;
25+
import java.util.Optional;
2526

2627
/** Dagger module for {@link Keyring} */
2728
@Module
@@ -55,7 +56,7 @@ public static String provideCloudSqlDbInstance(
5556

5657
@Provides
5758
@Config("valkeyCertificateAuthority")
58-
public static String provideValkeyCertificateAuthority(Keyring keyring) {
59-
return keyring.getValkeyCertificateAuthority();
59+
public static Optional<String> provideValkeyCertificateAuthority(Keyring keyring) {
60+
return Optional.ofNullable(keyring.getValkeyCertificateAuthority());
6061
}
6162
}

0 commit comments

Comments
 (0)