You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ji...@apache.org on 2017/08/05 19:19:17 UTC

geode git commit: GEODE-3328: adding ssl-truststore-type to the config

Repository: geode
Updated Branches:
  refs/heads/develop 23f7a75f7 -> 488f3ceaa


GEODE-3328: adding ssl-truststore-type to the config


Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/488f3cea
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/488f3cea
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/488f3cea

Branch: refs/heads/develop
Commit: 488f3ceaa8145719cef99e42fb9622e65a75a1ec
Parents: 23f7a75
Author: Jinmei Liao <ji...@pivotal.io>
Authored: Thu Aug 3 11:19:56 2017 -0700
Committer: Jinmei Liao <ji...@pivotal.io>
Committed: Sat Aug 5 12:18:28 2017 -0700

----------------------------------------------------------------------
 .../distributed/ConfigurationProperties.java    | 13 ++++
 .../internal/AbstractDistributionConfig.java    | 30 ++++-----
 .../internal/DistributionConfig.java            | 39 +++++++++---
 .../internal/DistributionConfigImpl.java        | 65 +++++++++++++++++++-
 .../internal/net/SSLConfigurationFactory.java   | 14 +++--
 .../geode/management/GemFireProperties.java     |  9 +++
 .../internal/beans/BeanUtilFuncs.java           |  1 +
 .../internal/DistributionConfigJUnitTest.java   | 26 ++++----
 8 files changed, 153 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/488f3cea/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
index 63f6505..91a6443 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/ConfigurationProperties.java
@@ -686,6 +686,7 @@ public interface ConfigurationProperties {
    * <U>Since</U>: Geode 1.0
    */
   String SSL_WEB_ALIAS = "ssl-web-alias";
+
   /**
    * The static String definition of the <i>"http-service-ssl-ciphers"</i> property <a
    * name="http-service-ssl-ciphers"/a>
@@ -1980,6 +1981,18 @@ public interface ConfigurationProperties {
    * <U>Since</U>: Geode 1.0
    */
   String SSL_KEYSTORE_TYPE = "ssl-keystore-type";
+
+  /**
+   * The static String definition of the <i>"ssl-truststore-type"</i> property <a
+   * name="ssl-truststore-type"/a>
+   * </p>
+   * <U>Description</U>For Java truststore file format, this property has the value jks (or JKS).
+   * </p>
+   * <U>Default</U>: ""
+   * </p>
+   * <U>Since</U>: Geode 1.3
+   */
+  String SSL_TRUSTSTORE_TYPE = "ssl-truststore-type";
   /**
    * The static String definition of the <i>"cluster-ssl-protocols"</i> property <a
    * name="ssl-protocols"/a>

http://git-wip-us.apache.org/repos/asf/geode/blob/488f3cea/geode-core/src/main/java/org/apache/geode/distributed/internal/AbstractDistributionConfig.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/AbstractDistributionConfig.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/AbstractDistributionConfig.java
index 795f6a5..bfc5e1d 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/AbstractDistributionConfig.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/AbstractDistributionConfig.java
@@ -16,7 +16,21 @@ package org.apache.geode.distributed.internal;
 
 import static org.apache.geode.distributed.ConfigurationProperties.*;
 
+import java.lang.reflect.Method;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+
 import org.apache.commons.lang.StringUtils;
+import org.apache.logging.log4j.Logger;
+
 import org.apache.geode.InternalGemFireException;
 import org.apache.geode.InvalidValueException;
 import org.apache.geode.UnmodifiableException;
@@ -30,19 +44,6 @@ import org.apache.geode.internal.logging.log4j.LogLevel;
 import org.apache.geode.internal.net.SocketCreator;
 import org.apache.geode.internal.security.SecurableCommunicationChannel;
 import org.apache.geode.memcached.GemFireMemcachedServer;
-import org.apache.logging.log4j.Logger;
-
-import java.lang.reflect.Method;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringTokenizer;
 
 /**
  * Provides an implementation of <code>DistributionConfig</code> that knows how to read the
@@ -1047,7 +1048,6 @@ public abstract class AbstractDistributionConfig extends AbstractConfig
         "Location of the Java keystore file containing the collection of CA certificates trusted by jmx manager.");
     m.put(JMX_MANAGER_SSL_TRUSTSTORE_PASSWORD,
         "Password to unlock the keystore file (store password) specified by  javax.net.ssl.trustStore.");
-
     m.put(JMX_MANAGER_PORT,
         "The port the jmx manager will listen on. Default is \"" + DEFAULT_JMX_MANAGER_PORT
             + "\". Set to zero to disable GemFire's creation of a jmx listening port.");
@@ -1215,6 +1215,8 @@ public abstract class AbstractDistributionConfig extends AbstractConfig
     m.put(SSL_TRUSTSTORE,
         "Location of the Java keystore file containing the collection of trusted certificates.");
     m.put(SSL_TRUSTSTORE_PASSWORD, "Password to unlock the truststore.");
+    m.put(SSL_TRUSTSTORE_TYPE,
+        "For Java truststore file format, this property has the value jks (or JKS).");
     m.put(SSL_DEFAULT_ALIAS, "The default certificate alias to be used in a multi-key keystore");
     m.put(SSL_WEB_SERVICE_REQUIRE_AUTHENTICATION,
         "This property determines is the HTTP service with use mutual ssl authentication.");

http://git-wip-us.apache.org/repos/asf/geode/blob/488f3cea/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfig.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfig.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfig.java
index c2a395d..958ea15 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfig.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfig.java
@@ -17,16 +17,6 @@ package org.apache.geode.distributed.internal;
 
 import static org.apache.geode.distributed.ConfigurationProperties.*;
 
-import org.apache.geode.distributed.ConfigurationProperties;
-import org.apache.geode.distributed.DistributedSystem;
-import org.apache.geode.internal.Config;
-import org.apache.geode.internal.ConfigSource;
-import org.apache.geode.internal.logging.InternalLogWriter;
-import org.apache.geode.internal.logging.LogConfig;
-import org.apache.geode.internal.security.SecurableCommunicationChannel;
-import org.apache.geode.internal.tcp.Connection;
-import org.apache.geode.memcached.GemFireMemcachedServer;
-
 import java.io.File;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
@@ -38,6 +28,16 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
+import org.apache.geode.distributed.ConfigurationProperties;
+import org.apache.geode.distributed.DistributedSystem;
+import org.apache.geode.internal.Config;
+import org.apache.geode.internal.ConfigSource;
+import org.apache.geode.internal.logging.InternalLogWriter;
+import org.apache.geode.internal.logging.LogConfig;
+import org.apache.geode.internal.security.SecurableCommunicationChannel;
+import org.apache.geode.internal.tcp.Connection;
+import org.apache.geode.memcached.GemFireMemcachedServer;
+
 /**
  * Provides accessor (and in some cases mutator) methods for the various GemFire distribution
  * configuration properties. The interface also provides constants for the names of properties and
@@ -4821,6 +4821,25 @@ public interface DistributionConfig extends Config, LogConfig {
   String SSL_TRUSTSTORE_PASSWORD_NAME = SSL_TRUSTSTORE_PASSWORD;
 
   /**
+   * Returns the value of the {@link ConfigurationProperties#SSL_TRUSTSTORE_TYPE} property.
+   */
+  @ConfigAttributeGetter(name = SSL_TRUSTSTORE_TYPE)
+  String getSSLTrustStoreType();
+
+  /**
+   * Sets the value of the {@link ConfigurationProperties#SSL_TRUSTSTORE_TYPE} property.
+   */
+  @ConfigAttributeSetter(name = SSL_TRUSTSTORE_TYPE)
+  void setSSLTrustStoreType(String trustStoreType);
+
+
+  /**
+   * The name of the {@link ConfigurationProperties#SSL_TRUSTSTORE_TYPE} property
+   */
+  @ConfigAttribute(type = String.class)
+  String SSL_TRUSTSTORE_TYPE_NAME = SSL_TRUSTSTORE_TYPE;
+
+  /**
    * Returns the value of the {@link ConfigurationProperties#SSL_WEB_SERVICE_REQUIRE_AUTHENTICATION}
    * property.
    */

http://git-wip-us.apache.org/repos/asf/geode/blob/488f3cea/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfigImpl.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfigImpl.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfigImpl.java
index fbe894c..abaa83c 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfigImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfigImpl.java
@@ -15,7 +15,55 @@
 
 package org.apache.geode.distributed.internal;
 
-import static org.apache.geode.distributed.ConfigurationProperties.*;
+import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_CIPHERS;
+import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_ENABLED;
+import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_KEYSTORE;
+import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_KEYSTORE_PASSWORD;
+import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_KEYSTORE_TYPE;
+import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_PROTOCOLS;
+import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_REQUIRE_AUTHENTICATION;
+import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_TRUSTSTORE;
+import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_TRUSTSTORE_PASSWORD;
+import static org.apache.geode.distributed.ConfigurationProperties.GATEWAY_SSL_CIPHERS;
+import static org.apache.geode.distributed.ConfigurationProperties.GATEWAY_SSL_ENABLED;
+import static org.apache.geode.distributed.ConfigurationProperties.GATEWAY_SSL_KEYSTORE;
+import static org.apache.geode.distributed.ConfigurationProperties.GATEWAY_SSL_KEYSTORE_PASSWORD;
+import static org.apache.geode.distributed.ConfigurationProperties.GATEWAY_SSL_KEYSTORE_TYPE;
+import static org.apache.geode.distributed.ConfigurationProperties.GATEWAY_SSL_PROTOCOLS;
+import static org.apache.geode.distributed.ConfigurationProperties.GATEWAY_SSL_REQUIRE_AUTHENTICATION;
+import static org.apache.geode.distributed.ConfigurationProperties.GATEWAY_SSL_TRUSTSTORE;
+import static org.apache.geode.distributed.ConfigurationProperties.GATEWAY_SSL_TRUSTSTORE_PASSWORD;
+import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_SSL_CIPHERS;
+import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_SSL_ENABLED;
+import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_SSL_KEYSTORE;
+import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_SSL_KEYSTORE_PASSWORD;
+import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_SSL_KEYSTORE_TYPE;
+import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_SSL_PROTOCOLS;
+import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_SSL_REQUIRE_AUTHENTICATION;
+import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_SSL_TRUSTSTORE;
+import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_SSL_TRUSTSTORE_PASSWORD;
+import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_CIPHERS;
+import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_ENABLED;
+import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_KEYSTORE;
+import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_KEYSTORE_PASSWORD;
+import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_KEYSTORE_TYPE;
+import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_PROTOCOLS;
+import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_REQUIRE_AUTHENTICATION;
+import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_TRUSTSTORE;
+import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_SSL_TRUSTSTORE_PASSWORD;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTH_INIT;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_UDP_DHALGO;
+import static org.apache.geode.distributed.ConfigurationProperties.SERVER_SSL_CIPHERS;
+import static org.apache.geode.distributed.ConfigurationProperties.SERVER_SSL_ENABLED;
+import static org.apache.geode.distributed.ConfigurationProperties.SERVER_SSL_KEYSTORE;
+import static org.apache.geode.distributed.ConfigurationProperties.SERVER_SSL_KEYSTORE_PASSWORD;
+import static org.apache.geode.distributed.ConfigurationProperties.SERVER_SSL_KEYSTORE_TYPE;
+import static org.apache.geode.distributed.ConfigurationProperties.SERVER_SSL_PROTOCOLS;
+import static org.apache.geode.distributed.ConfigurationProperties.SERVER_SSL_REQUIRE_AUTHENTICATION;
+import static org.apache.geode.distributed.ConfigurationProperties.SERVER_SSL_TRUSTSTORE;
+import static org.apache.geode.distributed.ConfigurationProperties.SERVER_SSL_TRUSTSTORE_PASSWORD;
+import static org.apache.geode.distributed.ConfigurationProperties.SSL_ENABLED_COMPONENTS;
 
 import java.io.File;
 import java.io.IOException;
@@ -32,11 +80,9 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.builder.EqualsBuilder;
 import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.apache.geode.redis.GeodeRedisServer;
 
 import org.apache.geode.GemFireConfigException;
 import org.apache.geode.GemFireIOException;
@@ -49,6 +95,7 @@ import org.apache.geode.internal.net.SocketCreator;
 import org.apache.geode.internal.process.ProcessLauncherContext;
 import org.apache.geode.internal.security.SecurableCommunicationChannel;
 import org.apache.geode.memcached.GemFireMemcachedServer;
+import org.apache.geode.redis.GeodeRedisServer;
 
 /**
  * Provides an implementation of <code>DistributionConfig</code> that knows how to read the
@@ -567,6 +614,7 @@ public class DistributionConfigImpl extends AbstractDistributionConfig implement
   private String sslKeyStorePassword = DEFAULT_SSL_KEYSTORE_PASSWORD;
   private String sslTrustStore = DEFAULT_SSL_TRUSTSTORE;
   private String sslTrustStorePassword = DEFAULT_SSL_TRUSTSTORE_PASSWORD;
+  private String sslTrustStoreType = DEFAULT_CLUSTER_SSL_KEYSTORE_TYPE;
   private boolean sslWebServiceRequireAuthentication =
       DEFAULT_SSL_WEB_SERVICE_REQUIRE_AUTHENTICATION;
 
@@ -788,6 +836,7 @@ public class DistributionConfigImpl extends AbstractDistributionConfig implement
     this.sslKeyStoreType = other.getSSLKeyStoreType();
     this.sslTrustStore = other.getSSLTrustStore();
     this.sslTrustStorePassword = other.getSSLTrustStorePassword();
+    this.sslTrustStoreType = other.getSSLTrustStoreType();
     this.sslProperties = other.getSSLProperties();
     this.sslDefaultAlias = other.getSSLDefaultAlias();
     this.sslWebServiceRequireAuthentication = other.getSSLWebRequireAuthentication();
@@ -2785,6 +2834,16 @@ public class DistributionConfigImpl extends AbstractDistributionConfig implement
   }
 
   @Override
+  public String getSSLTrustStoreType() {
+    return sslTrustStoreType;
+  }
+
+  @Override
+  public void setSSLTrustStoreType(final String sslTrustStoreType) {
+    this.sslTrustStoreType = sslTrustStoreType;
+  }
+
+  @Override
   public boolean getSSLWebRequireAuthentication() {
     return sslWebServiceRequireAuthentication;
   }

http://git-wip-us.apache.org/repos/asf/geode/blob/488f3cea/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java b/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java
index f86f07e..4b98617 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/net/SSLConfigurationFactory.java
@@ -15,17 +15,18 @@
 
 package org.apache.geode.internal.net;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
+
 import org.apache.geode.GemFireConfigException;
 import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.internal.admin.SSLConfig;
 import org.apache.geode.internal.security.SecurableCommunicationChannel;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
 public class SSLConfigurationFactory {
 
   public static final String JAVAX_KEYSTORE = "javax.net.ssl.keyStore";
@@ -161,6 +162,7 @@ public class SSLConfigurationFactory {
     sslConfig.setKeystoreType(getDistributionConfig().getSSLKeyStoreType());
     sslConfig.setTruststore(getDistributionConfig().getSSLTrustStore());
     sslConfig.setTruststorePassword(getDistributionConfig().getSSLTrustStorePassword());
+    sslConfig.setTruststoreType(getDistributionConfig().getSSLTrustStoreType());
     sslConfig.setProtocols(getDistributionConfig().getSSLProtocols());
     sslConfig.setRequireAuth(getDistributionConfig().getSSLRequireAuthentication());
     sslConfig.setAlias(getDistributionConfig().getSSLDefaultAlias());
@@ -195,6 +197,7 @@ public class SSLConfigurationFactory {
     sslConfig.setKeystoreType(getDistributionConfig().getClusterSSLKeyStoreType());
     sslConfig.setTruststore(getDistributionConfig().getClusterSSLTrustStore());
     sslConfig.setTruststorePassword(getDistributionConfig().getClusterSSLTrustStorePassword());
+    sslConfig.setTruststoreType(getDistributionConfig().getClusterSSLKeyStoreType());
     sslConfig.setProtocols(getDistributionConfig().getClusterSSLProtocols());
     sslConfig.setRequireAuth(getDistributionConfig().getClusterSSLRequireAuthentication());
     return sslConfig;
@@ -214,6 +217,7 @@ public class SSLConfigurationFactory {
     sslConfig.setKeystoreType(getDistributionConfig().getServerSSLKeyStoreType());
     sslConfig.setTruststore(getDistributionConfig().getServerSSLTrustStore());
     sslConfig.setTruststorePassword(getDistributionConfig().getServerSSLTrustStorePassword());
+    sslConfig.setTruststoreType(getDistributionConfig().getServerSSLKeyStoreType());
     sslConfig.setProtocols(getDistributionConfig().getServerSSLProtocols());
     sslConfig.setRequireAuth(getDistributionConfig().getServerSSLRequireAuthentication());
     return sslConfig;
@@ -233,6 +237,7 @@ public class SSLConfigurationFactory {
     sslConfig.setKeystoreType(getDistributionConfig().getJmxManagerSSLKeyStoreType());
     sslConfig.setTruststore(getDistributionConfig().getJmxManagerSSLTrustStore());
     sslConfig.setTruststorePassword(getDistributionConfig().getJmxManagerSSLTrustStorePassword());
+    sslConfig.setTruststoreType(getDistributionConfig().getJmxManagerSSLKeyStoreType());
     sslConfig.setProtocols(getDistributionConfig().getJmxManagerSSLProtocols());
     sslConfig.setRequireAuth(getDistributionConfig().getJmxManagerSSLRequireAuthentication());
     return sslConfig;
@@ -271,6 +276,7 @@ public class SSLConfigurationFactory {
     sslConfig.setKeystoreType(getDistributionConfig().getHttpServiceSSLKeyStoreType());
     sslConfig.setTruststore(getDistributionConfig().getHttpServiceSSLTrustStore());
     sslConfig.setTruststorePassword(getDistributionConfig().getHttpServiceSSLTrustStorePassword());
+    sslConfig.setTruststoreType(getDistributionConfig().getHttpServiceSSLKeyStoreType());
     sslConfig.setProtocols(getDistributionConfig().getHttpServiceSSLProtocols());
     sslConfig.setRequireAuth(getDistributionConfig().getHttpServiceSSLRequireAuthentication());
     return sslConfig;

http://git-wip-us.apache.org/repos/asf/geode/blob/488f3cea/geode-core/src/main/java/org/apache/geode/management/GemFireProperties.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/GemFireProperties.java b/geode-core/src/main/java/org/apache/geode/management/GemFireProperties.java
index 08fa9b5..6257967 100644
--- a/geode-core/src/main/java/org/apache/geode/management/GemFireProperties.java
+++ b/geode-core/src/main/java/org/apache/geode/management/GemFireProperties.java
@@ -607,6 +607,7 @@ public class GemFireProperties {
   private String sslKeyStoreType;
   private String sslKeyStorePassword;
   private String sslTrustStore;
+  private String sslTrustStoreType;
   private String sslTrustStorePassword;
   private boolean sslWebServiceRequireAuthentication;
   private String sslDefaultAlias;
@@ -1812,6 +1813,14 @@ public class GemFireProperties {
     this.sslTrustStorePassword = sslTrustStorePassword;
   }
 
+  public String getSSLTrustStoreType() {
+    return sslTrustStoreType;
+  }
+
+  public void setSSLTrustStoreType(final String sslTrustStoreType) {
+    this.sslTrustStoreType = sslTrustStoreType;
+  }
+
   public boolean getSSLWebServiceRequireAuthentication() {
     return sslWebServiceRequireAuthentication;
   }

http://git-wip-us.apache.org/repos/asf/geode/blob/488f3cea/geode-core/src/main/java/org/apache/geode/management/internal/beans/BeanUtilFuncs.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/beans/BeanUtilFuncs.java b/geode-core/src/main/java/org/apache/geode/management/internal/beans/BeanUtilFuncs.java
index 499ef01..16d45bc 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/beans/BeanUtilFuncs.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/beans/BeanUtilFuncs.java
@@ -310,6 +310,7 @@ public class BeanUtilFuncs {
     gemFirePropertyData.setSSLKeyStorePassword(config.getSSLKeyStorePassword());
     gemFirePropertyData.setSSLTrustStore(config.getSSLTrustStore());
     gemFirePropertyData.setSSLTrustStorePassword(config.getSSLTrustStorePassword());
+    gemFirePropertyData.setSSLTrustStoreType(config.getSSLTrustStoreType());
 
     gemFirePropertyData.setClusterSSLAlias(config.getClusterSSLAlias());
     gemFirePropertyData.setServerSSLAlias(config.getServerSSLAlias());

http://git-wip-us.apache.org/repos/asf/geode/blob/488f3cea/geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionConfigJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionConfigJUnitTest.java b/geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionConfigJUnitTest.java
index 525f988..7e5f83f 100644
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionConfigJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionConfigJUnitTest.java
@@ -42,17 +42,6 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import org.apache.geode.InternalGemFireException;
-import org.apache.geode.UnmodifiableException;
-import org.apache.geode.internal.ConfigSource;
-import org.apache.geode.security.TestPostProcessor;
-import org.apache.geode.security.TestSecurityManager;
-import org.apache.geode.test.junit.categories.MembershipTest;
-import org.apache.geode.test.junit.categories.UnitTest;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
 import java.io.File;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -62,6 +51,17 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import org.apache.geode.UnmodifiableException;
+import org.apache.geode.internal.ConfigSource;
+import org.apache.geode.security.TestPostProcessor;
+import org.apache.geode.security.TestSecurityManager;
+import org.apache.geode.test.junit.categories.MembershipTest;
+import org.apache.geode.test.junit.categories.UnitTest;
+
 @Category({UnitTest.class, MembershipTest.class})
 public class DistributionConfigJUnitTest {
 
@@ -99,7 +99,7 @@ public class DistributionConfigJUnitTest {
   @Test
   public void testGetAttributeNames() {
     String[] attNames = AbstractDistributionConfig._getAttNames();
-    assertEquals(attNames.length, 156);
+    assertEquals(attNames.length, 157);
 
     List boolList = new ArrayList();
     List intList = new ArrayList();
@@ -135,7 +135,7 @@ public class DistributionConfigJUnitTest {
     // are.
     assertEquals(29, boolList.size());
     assertEquals(33, intList.size());
-    assertEquals(85, stringList.size());
+    assertEquals(86, stringList.size());
     assertEquals(5, fileList.size());
     assertEquals(4, otherList.size());
   }