Browse Source

Be more defensive about a null password in Undertow SSL

Fixes gh-6387
pull/6458/head
Dave Syer 10 years ago
parent
commit
af426d0856
  1. 7
      spring-boot/src/main/java/org/springframework/boot/context/embedded/undertow/UndertowEmbeddedServletContainerFactory.java

7
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); KeyStore keyStore = KeyStore.getInstance(keyStoreType);
URL url = ResourceUtils.getURL(ssl.getKeyStore()); 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. // Get key manager to provide client credentials.
KeyManagerFactory keyManagerFactory = KeyManagerFactory KeyManagerFactory keyManagerFactory = KeyManagerFactory
.getInstance(KeyManagerFactory.getDefaultAlgorithm()); .getInstance(KeyManagerFactory.getDefaultAlgorithm());
char[] keyPassword = ssl.getKeyPassword() != null char[] keyPassword = ssl.getKeyPassword() != null
? ssl.getKeyPassword().toCharArray() ? ssl.getKeyPassword().toCharArray()
: ssl.getKeyStorePassword().toCharArray(); : keyStorePassword;
keyManagerFactory.init(keyStore, keyPassword); keyManagerFactory.init(keyStore, keyPassword);
return keyManagerFactory.getKeyManagers(); return keyManagerFactory.getKeyManagers();
} }

Loading…
Cancel
Save