From 12d48d415db6e94efe25cb87dda13f770cc4e4dc Mon Sep 17 00:00:00 2001 From: Andrei Date: Thu, 6 Mar 2025 20:35:51 -0800 Subject: [PATCH] Fix keyStore bug in GatewayAutoConfiguration Fixes java.security.KeyStoreException: Uninitialized keystore Per JDK documentation keystore should be initialized before use. Signed-off-by: Andrei --- .../cloud/gateway/config/GatewayAutoConfiguration.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java index c1906e3f..3a63edaf 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java @@ -16,9 +16,11 @@ package org.springframework.cloud.gateway.config; +import java.io.IOException; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; +import java.security.cert.CertificateException; import java.util.List; import java.util.Set; import java.util.function.Supplier; @@ -354,10 +356,12 @@ public class GatewayAutoConfiguration { @ConditionalOnMissingBean(GrpcSslConfigurer.class) @ConditionalOnClass(name = "io.grpc.Channel") public GrpcSslConfigurer grpcSslConfigurer(HttpClientProperties properties) - throws KeyStoreException, NoSuchAlgorithmException { + throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException { TrustManagerFactory trustManagerFactory = TrustManagerFactory .getInstance(TrustManagerFactory.getDefaultAlgorithm()); - trustManagerFactory.init(KeyStore.getInstance(KeyStore.getDefaultType())); + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + keyStore.load(null); + trustManagerFactory.init(keyStore); return new GrpcSslConfigurer(properties.getSsl()); }