6161 */
6262public class HTTPServerFactory {
6363
64+ private static final String JAVAX_NET_SSL_KEY_STORE = "javax.net.ssl.keyStore" ;
65+ private static final String JAVAX_NET_SSL_KEY_STORE_TYPE = "javax.net.ssl.keyStoreType" ;
66+ private static final String JAVAX_NET_SSL_KEY_STORE_PASSWORD = "javax.net.ssl.keyStorePassword" ;
67+
68+ private static final String DEFAULT_KEYSTORE_TYPE ;
69+
70+ private static final String JAVAX_NET_SSL_TRUST_STORE = "javax.net.ssl.trustStore" ;
71+ private static final String JAVAX_NET_SSL_TRUST_STORE_TYPE = "javax.net.ssl.trustStoreType" ;
72+ private static final String JAVAX_NET_SSL_TRUST_STORE_PASSWORD =
73+ "javax.net.ssl.trustStorePassword" ;
74+
75+ private static final String DEFAULT_TRUST_STORE_TYPE ;
76+
6477 private static final int DEFAULT_MINIMUM_THREADS = 1 ;
6578 private static final int DEFAULT_MAXIMUM_THREADS = 10 ;
6679 private static final int DEFAULT_KEEP_ALIVE_TIME_SECONDS = 120 ;
@@ -70,16 +83,29 @@ public class HTTPServerFactory {
7083 private static final Set <String > SHA_ALGORITHMS ;
7184 private static final Set <String > PBKDF2_ALGORITHMS ;
7285 private static final Map <String , Integer > PBKDF2_ALGORITHM_ITERATIONS ;
73- private static final String JAVAX_NET_SSL_KEY_STORE = "javax.net.ssl.keyStore" ;
74- private static final String JAVAX_NET_SSL_KEY_STORE_PASSWORD = "javax.net.ssl.keyStorePassword" ;
75- private static final String JAVAX_NET_SSL_TRUST_STORE = "javax.net.ssl.trustStore" ;
76- private static final String JAVAX_NET_SSL_TRUST_STORE_TYPE = "javax.net.ssl.trustStoreType" ;
77- private static final String JAVAX_NET_SSL_TRUST_STORE_PASSWORD =
78- "javax.net.ssl.trustStorePassword" ;
79-
8086 private static final int PBKDF2_KEY_LENGTH_BITS = 128 ;
8187
8288 static {
89+ // Get the keystore type system property
90+ String keyStoreType = System .getProperty (JAVAX_NET_SSL_KEY_STORE_TYPE );
91+ if (keyStoreType == null ) {
92+ // If the keystore type system property is not set, use the default keystore type
93+ keyStoreType = KeyStore .getDefaultType ();
94+ }
95+
96+ // Set the default keystore type
97+ DEFAULT_KEYSTORE_TYPE = keyStoreType ;
98+
99+ // Get the truststore type system property
100+ String trustStoreType = System .getProperty (JAVAX_NET_SSL_TRUST_STORE_TYPE );
101+ if (trustStoreType == null ) {
102+ // If the truststore type system property is not set, use the default truststore type
103+ trustStoreType = KeyStore .getDefaultType ();
104+ }
105+
106+ // Set the default truststore type
107+ DEFAULT_TRUST_STORE_TYPE = trustStoreType ;
108+
83109 SHA_ALGORITHMS = new HashSet <>();
84110 SHA_ALGORITHMS .add ("SHA-1" );
85111 SHA_ALGORITHMS .add ("SHA-256" );
@@ -655,7 +681,7 @@ public void configureSSL(HTTPServer.Builder httpServerBuilder) {
655681 "Invalid configuration for"
656682 + " /httpServer/ssl/keyStore/type"
657683 + " must not be blank" )))
658- .orElse (KeyStore . getDefaultType () );
684+ .orElse (DEFAULT_KEYSTORE_TYPE );
659685
660686 String keyStorePassword =
661687 rootYamlMapAccessor
@@ -697,6 +723,7 @@ public void configureSSL(HTTPServer.Builder httpServerBuilder) {
697723 String trustStoreFilename = null ;
698724 String trustStoreType = null ;
699725 String trustStorePassword = null ;
726+
700727 final boolean mutualTLS =
701728 rootYamlMapAccessor
702729 .get ("/httpServer/ssl/mutualTLS" )
@@ -753,7 +780,7 @@ public void configureSSL(HTTPServer.Builder httpServerBuilder) {
753780 "Invalid configuration for"
754781 + " /httpServer/ssl/trustStore/type"
755782 + " must not be blank" )))
756- .orElse (System . getProperty ( JAVAX_NET_SSL_TRUST_STORE_TYPE ) );
783+ .orElse (DEFAULT_TRUST_STORE_TYPE );
757784
758785 trustStorePassword =
759786 rootYamlMapAccessor
0 commit comments