Repository: cloudstack
Updated Branches:
  refs/heads/master 4d06eef3b -> 57c484140


CLOUDSTACK-7814: Fix default passphrase for keystores

In upgrade case, the db.properties file is not changed, but the following commit
would require passphrase for keystore in it, thus result in error(NPE in fact
due to there is no such properity).

commit 918c320438980f070150f872e3a3ba907572af83
Author: Upendra Moturi <upendra.mot...@sungard.com>
Date: Fri Jun 20 11:41:58 2014 +0530
CLOUDSTACK-6847.Link.java and console proxy files have hardcoded value

This commit fix it by put default value for passphrases, also set correct
passphrase if fail-safe keystore is used.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/57c48414
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/57c48414
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/57c48414

Branch: refs/heads/master
Commit: 57c48414030a9961e82d7e6f39a24b84ccc7e371
Parents: 4d06eef
Author: Sheng Yang <sheng.y...@citrix.com>
Authored: Mon Oct 27 18:59:55 2014 -0700
Committer: Sheng Yang <sheng.y...@citrix.com>
Committed: Tue Oct 28 16:25:52 2014 -0700

----------------------------------------------------------------------
 .../ConsoleProxySecureServerFactoryImpl.java    | 32 ++++++++++----------
 utils/src/com/cloud/utils/nio/Link.java         |  9 ++++--
 2 files changed, 22 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57c48414/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxySecureServerFactoryImpl.java
----------------------------------------------------------------------
diff --git 
a/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxySecureServerFactoryImpl.java
 
b/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxySecureServerFactoryImpl.java
index 7af4c7b..75d23b1 100644
--- 
a/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxySecureServerFactoryImpl.java
+++ 
b/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxySecureServerFactoryImpl.java
@@ -16,12 +16,12 @@
 // under the License.
 package com.cloud.consoleproxy;
 
-import java.io.ByteArrayInputStream;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.security.KeyStore;
-import java.util.Properties;
+import com.cloud.utils.db.DbProperties;
+import com.sun.net.httpserver.HttpServer;
+import com.sun.net.httpserver.HttpsConfigurator;
+import com.sun.net.httpserver.HttpsParameters;
+import com.sun.net.httpserver.HttpsServer;
+import org.apache.log4j.Logger;
 
 import javax.net.ssl.KeyManagerFactory;
 import javax.net.ssl.SSLContext;
@@ -29,14 +29,11 @@ import javax.net.ssl.SSLParameters;
 import javax.net.ssl.SSLServerSocket;
 import javax.net.ssl.SSLServerSocketFactory;
 import javax.net.ssl.TrustManagerFactory;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.utils.db.DbProperties;
-import com.sun.net.httpserver.HttpServer;
-import com.sun.net.httpserver.HttpsConfigurator;
-import com.sun.net.httpserver.HttpsParameters;
-import com.sun.net.httpserver.HttpsServer;
+import java.io.ByteArrayInputStream;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.security.KeyStore;
 
 public class ConsoleProxySecureServerFactoryImpl implements 
ConsoleProxyServerFactory {
     private static final Logger s_logger = 
Logger.getLogger(ConsoleProxySecureServerFactoryImpl.class);
@@ -54,8 +51,11 @@ public class ConsoleProxySecureServerFactoryImpl implements 
ConsoleProxyServerFa
             try {
                 s_logger.info("Initializing SSL from built-in default 
certificate");
 
-                final Properties dbProps = DbProperties.getDbProperties();
-                char[] passphrase = 
dbProps.getProperty("db.cloud.keyStorePassphrase").toCharArray();
+                final String pass = 
DbProperties.getDbProperties().getProperty("db.cloud.keyStorePassphrase");
+                char[] passphrase = "vmops.com".toCharArray();
+                if (pass != null) {
+                    passphrase = pass.toCharArray();
+                }
                 KeyStore ks = KeyStore.getInstance("JKS");
 
                 ks.load(new FileInputStream("certs/realhostip.keystore"), 
passphrase);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57c48414/utils/src/com/cloud/utils/nio/Link.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/nio/Link.java 
b/utils/src/com/cloud/utils/nio/Link.java
index c295caf..a15b8a4 100755
--- a/utils/src/com/cloud/utils/nio/Link.java
+++ b/utils/src/com/cloud/utils/nio/Link.java
@@ -33,7 +33,6 @@ import java.nio.channels.SelectionKey;
 import java.nio.channels.SocketChannel;
 import java.security.GeneralSecurityException;
 import java.security.KeyStore;
-import java.util.Properties;
 import java.util.concurrent.ConcurrentLinkedQueue;
 
 import javax.net.ssl.KeyManagerFactory;
@@ -418,8 +417,11 @@ public class Link {
 
         File confFile = PropertiesUtil.findConfigFile("db.properties");
         if (null != confFile && !isClient) {
-            final Properties dbProps = DbProperties.getDbProperties();
-            char[] passphrase = 
dbProps.getProperty("db.cloud.keyStorePassphrase").toCharArray();
+            final String pass = 
DbProperties.getDbProperties().getProperty("db.cloud.keyStorePassphrase");
+            char[] passphrase = "vmops.com".toCharArray();
+            if (pass != null) {
+                passphrase = pass.toCharArray();
+            }
             String confPath = confFile.getParent();
             String keystorePath = confPath + keystoreFile;
             if (new File(keystorePath).exists()) {
@@ -427,6 +429,7 @@ public class Link {
             } else {
                 s_logger.warn("SSL: Fail to find the generated keystore. 
Loading fail-safe one to continue.");
                 stream = 
NioConnection.class.getResourceAsStream("/cloud.keystore");
+                passphrase = "vmops.com".toCharArray();
             }
             ks.load(stream, passphrase);
             stream.close();

Reply via email to