Skip to content
This repository was archived by the owner on Sep 16, 2024. It is now read-only.

Commit 82365c4

Browse files
committed
DEVEXP-589 Fixing bug with simple SSL for Manage and Admin servers
"simpleSsl" now sets the SSL hostname verifier to ANY, mirroring what happens for the Java Client connections as well.
1 parent 6273b76 commit 82365c4

File tree

3 files changed

+36
-6
lines changed

3 files changed

+36
-6
lines changed

src/main/java/com/marklogic/rest/util/RestConfig.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import com.marklogic.client.DatabaseClientBuilder;
1919
import com.marklogic.client.DatabaseClientFactory;
20+
import com.marklogic.client.DatabaseClientFactory.SSLHostnameVerifier;
2021
import com.marklogic.client.ext.modulesloader.ssl.SimpleX509TrustManager;
2122
import com.marklogic.client.ext.ssl.SslConfig;
2223
import com.marklogic.client.ext.ssl.SslUtil;
@@ -114,7 +115,8 @@ public DatabaseClientBuilder newDatabaseClientBuilder() {
114115
.withSSLContext(StringUtils.hasText(sslProtocol) ?
115116
SimpleX509TrustManager.newSSLContext(sslProtocol) :
116117
SimpleX509TrustManager.newSSLContext())
117-
.withTrustManager(new SimpleX509TrustManager());
118+
.withTrustManager(new SimpleX509TrustManager())
119+
.withSSLHostnameVerifier(SSLHostnameVerifier.ANY);
118120
} else {
119121
builder.withSSLProtocol(sslProtocol);
120122
}

src/test/java/com/marklogic/mgmt/DefaultManageConfigFactoryTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package com.marklogic.mgmt;
1717

1818
import com.marklogic.client.DatabaseClientFactory;
19+
import com.marklogic.client.DatabaseClientFactory.SSLHostnameVerifier;
1920
import com.marklogic.mgmt.util.SimplePropertySource;
2021
import org.junit.jupiter.api.Test;
2122

@@ -104,6 +105,19 @@ public void sslProperties() {
104105
assertEquals("PKIX", config.getTrustManagementAlgorithm());
105106
}
106107

108+
@Test
109+
void simpleSsl() {
110+
ManageConfig config = configure(
111+
"mlManageSimpleSsl", "true",
112+
"mlUsername", "admin",
113+
"mlPassword", "admin"
114+
);
115+
116+
DatabaseClientFactory.Bean bean = config.newDatabaseClientBuilder().buildBean();
117+
SSLHostnameVerifier verifier = bean.getSecurityContext().getSSLHostnameVerifier();
118+
assertEquals(SSLHostnameVerifier.ANY, verifier, "simpleSsl should default to using the ANY hostname verifier");
119+
}
120+
107121
@Test
108122
public void mlHost() {
109123
ManageConfig config = configure("mlHost", "host1");

src/test/java/com/marklogic/mgmt/admin/DefaultAdminConfigFactoryTest.java

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,16 @@
1515
*/
1616
package com.marklogic.mgmt.admin;
1717

18-
import com.marklogic.client.DatabaseClientFactory;
19-
import com.marklogic.mgmt.util.SimplePropertySource;
20-
import org.junit.jupiter.api.Test;
21-
2218
import static org.junit.jupiter.api.Assertions.assertEquals;
23-
import static org.junit.jupiter.api.Assertions.assertNotNull;
2419
import static org.junit.jupiter.api.Assertions.assertThrows;
2520
import static org.junit.jupiter.api.Assertions.assertTrue;
2621

22+
import org.junit.jupiter.api.Test;
23+
24+
import com.marklogic.client.DatabaseClientFactory;
25+
import com.marklogic.client.DatabaseClientFactory.SSLHostnameVerifier;
26+
import com.marklogic.mgmt.util.SimplePropertySource;
27+
2728
public class DefaultAdminConfigFactoryTest {
2829

2930
@Test
@@ -75,6 +76,19 @@ public void sslProperties() {
7576
assertEquals("PKIX", config.getTrustManagementAlgorithm());
7677
}
7778

79+
@Test
80+
void simpleSsl() {
81+
AdminConfig config = configure(
82+
"mlAdminSimpleSsl", "true",
83+
"mlUsername", "admin",
84+
"mlPassword", "admin"
85+
);
86+
87+
DatabaseClientFactory.Bean bean = config.newDatabaseClientBuilder().buildBean();
88+
SSLHostnameVerifier verifier = bean.getSecurityContext().getSSLHostnameVerifier();
89+
assertEquals(SSLHostnameVerifier.ANY, verifier, "simpleSsl should default to using the ANY hostname verifier");
90+
}
91+
7892
@Test
7993
void cloudApiKeyAndBasePath() {
8094
AdminConfig config = configure(

0 commit comments

Comments
 (0)