Skip to content

Commit cbd8430

Browse files
georgeajitgeorgeajit
authored andcommitted
#885 - Test for Getters on SecurityContext.
1 parent e6908a0 commit cbd8430

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/functionaltest/TestDatabaseClientConnection.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,19 @@
2929
import java.io.IOException;
3030
import java.io.InputStream;
3131
import java.security.KeyManagementException;
32+
import java.security.KeyStoreException;
3233
import java.security.NoSuchAlgorithmException;
34+
import java.security.UnrecoverableKeyException;
35+
import java.security.cert.CertificateException;
36+
import java.security.cert.X509Certificate;
3337
import java.text.DecimalFormat;
3438
import java.util.Iterator;
3539
import java.util.Map;
3640
import java.util.Scanner;
3741
import java.util.TreeMap;
3842

43+
import javax.net.ssl.SSLContext;
44+
import javax.net.ssl.X509TrustManager;
3945
import javax.xml.bind.JAXBException;
4046
import javax.xml.parsers.ParserConfigurationException;
4147
import javax.xml.transform.TransformerException;
@@ -49,6 +55,7 @@
4955

5056
import com.marklogic.client.DatabaseClient;
5157
import com.marklogic.client.DatabaseClientFactory;
58+
import com.marklogic.client.DatabaseClientFactory.SSLHostnameVerifier;
5259
import com.marklogic.client.DatabaseClientFactory.SecurityContext;
5360
import com.marklogic.client.FailedRequestException;
5461
import com.marklogic.client.ForbiddenUserException;
@@ -158,6 +165,52 @@ public void testDatabaseClientConnectionExist() throws KeyManagementException, N
158165
// release client
159166
client.release();
160167
}
168+
169+
// To test getters of SecurityContext
170+
@Test
171+
public void testDatabaseClientGetters() throws KeyManagementException, NoSuchAlgorithmException, IOException
172+
{
173+
System.out.println("Running testDatabaseClientGetters");
174+
175+
DatabaseClient client = null;
176+
SSLContext sslcontext = null;
177+
SecurityContext secContext = new DatabaseClientFactory.DigestAuthContext("rest-reader", "x");
178+
179+
try {
180+
sslcontext = getSslContext();
181+
} catch (UnrecoverableKeyException | KeyStoreException | CertificateException e) {
182+
e.printStackTrace();
183+
}
184+
185+
secContext.withSSLContext(sslcontext, new X509TrustManager() {
186+
public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
187+
// nothing to do
188+
}
189+
190+
public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
191+
// nothing to do
192+
}
193+
194+
public X509Certificate[] getAcceptedIssuers() {
195+
return new X509Certificate[0];
196+
}
197+
})
198+
.withSSLHostnameVerifier(SSLHostnameVerifier.ANY);
199+
200+
client = DatabaseClientFactory.newClient(getRestServerHostName(), getRestServerPort(),
201+
secContext, getConnType());
202+
SecurityContext readSecContext = client.getSecurityContext();
203+
String verifier = readSecContext.getSSLHostnameVerifier().toString();
204+
String protocol = readSecContext.getSSLContext().getProtocol();
205+
boolean needClient = readSecContext.getSSLContext().getSupportedSSLParameters().getNeedClientAuth();
206+
207+
assertTrue("Verifier not Builtin", verifier.contains("Builtin"));
208+
assertTrue("Protocol incorrect", protocol.contains("TLSv1.2"));
209+
assertTrue("NeedClientAuth incorrect", needClient == false);
210+
// release client
211+
client.release();
212+
}
213+
161214

162215
@Test
163216
public void testDatabaseClientConnectionInvalidPort() throws IOException

0 commit comments

Comments
 (0)