From af426d08568b7eb8c24bf07a76a62f3ae394da91 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Wed, 13 Jul 2016 15:36:55 +0100 Subject: [PATCH] Be more defensive about a null password in Undertow SSL Fixes gh-6387 --- .../undertow/UndertowEmbeddedServletContainerFactory.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/undertow/UndertowEmbeddedServletContainerFactory.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/undertow/UndertowEmbeddedServletContainerFactory.java index e3a3e2ff4a..16ba9a5d7d 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/undertow/UndertowEmbeddedServletContainerFactory.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/undertow/UndertowEmbeddedServletContainerFactory.java @@ -294,14 +294,17 @@ public class UndertowEmbeddedServletContainerFactory } KeyStore keyStore = KeyStore.getInstance(keyStoreType); URL url = ResourceUtils.getURL(ssl.getKeyStore()); - keyStore.load(url.openStream(), ssl.getKeyStorePassword().toCharArray()); + char[] keyStorePassword = ssl.getKeyStorePassword() != null + ? ssl.getKeyStorePassword().toCharArray() + : null; + keyStore.load(url.openStream(), keyStorePassword); // Get key manager to provide client credentials. KeyManagerFactory keyManagerFactory = KeyManagerFactory .getInstance(KeyManagerFactory.getDefaultAlgorithm()); char[] keyPassword = ssl.getKeyPassword() != null ? ssl.getKeyPassword().toCharArray() - : ssl.getKeyStorePassword().toCharArray(); + : keyStorePassword; keyManagerFactory.init(keyStore, keyPassword); return keyManagerFactory.getKeyManagers(); }