Skip to content

Commit a550f7c

Browse files
authored
Fixed code to use the Java system properties for keystore and truststore types if not configured in exporter.yaml (#1126)
Signed-off-by: dhoard <doug.hoard@gmail.com>
1 parent e01fa0b commit a550f7c

File tree

1 file changed

+36
-9
lines changed

1 file changed

+36
-9
lines changed

jmx_prometheus_common/src/main/java/io/prometheus/jmx/common/http/HTTPServerFactory.java

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,19 @@
6161
*/
6262
public 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

Comments
 (0)