You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2016/04/22 04:13:16 UTC
[08/21] cxf git commit: Adding a pure Java SSLContext test
Adding a pure Java SSLContext test
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/5b740ccf
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/5b740ccf
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/5b740ccf
Branch: refs/heads/master-jaxrs-2.1
Commit: 5b740ccf970f0b5c6e748687286eda309ba82d2f
Parents: ea6a524
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Thu Apr 21 13:04:12 2016 +0100
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Thu Apr 21 13:04:12 2016 +0100
----------------------------------------------------------------------
.../https/clientauth/ClientAuthTest.java | 54 ++++++++++++++++++++
1 file changed, 54 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/5b740ccf/systests/transports/src/test/java/org/apache/cxf/systest/https/clientauth/ClientAuthTest.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/https/clientauth/ClientAuthTest.java b/systests/transports/src/test/java/org/apache/cxf/systest/https/clientauth/ClientAuthTest.java
index 5e306a3..6afe893 100644
--- a/systests/transports/src/test/java/org/apache/cxf/systest/https/clientauth/ClientAuthTest.java
+++ b/systests/transports/src/test/java/org/apache/cxf/systest/https/clientauth/ClientAuthTest.java
@@ -19,7 +19,16 @@
package org.apache.cxf.systest.https.clientauth;
+import java.io.FileInputStream;
import java.net.URL;
+import java.security.KeyStore;
+
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.TrustManagerFactory;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBusFactory;
@@ -243,4 +252,49 @@ public class ClientAuthTest extends AbstractBusClientServerTestBase {
((java.io.Closeable)port).close();
bus.shutdown(true);
}
+
+ @org.junit.Test
+ public void testSSLConnectionUsingJavaAPIs() throws Exception {
+ URL service = new URL("https://localhost:" + PORT);
+ HttpsURLConnection connection = (HttpsURLConnection) service.openConnection();
+
+ connection.setHostnameVerifier(new DisableCNCheckVerifier());
+
+ SSLContext sslContext = SSLContext.getInstance("TLS");
+
+ URL trustStore = ClientAuthTest.class.getResource("../../../../../../keys/Truststore.jks");
+ KeyStore ts = KeyStore.getInstance("JKS");
+ try (FileInputStream trustStoreInputStream = new FileInputStream(trustStore.getPath())) {
+ ts.load(trustStoreInputStream, "password".toCharArray());
+ }
+
+ TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+ tmf.init(ts);
+
+ URL keyStore = ClientAuthTest.class.getResource("../../../../../../keys/Morpit.jks");
+ KeyStore ks = KeyStore.getInstance("JKS");
+ try (FileInputStream keyStoreInputStream = new FileInputStream(keyStore.getPath())) {
+ ks.load(keyStoreInputStream, "password".toCharArray());
+ }
+
+ KeyManagerFactory kmf = KeyManagerFactory.getInstance("PKIX");
+ kmf.init(ks, "password".toCharArray());
+
+ sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), new java.security.SecureRandom());
+
+ connection.setSSLSocketFactory(sslContext.getSocketFactory());
+
+ connection.connect();
+
+ connection.disconnect();
+ }
+
+ private static final class DisableCNCheckVerifier implements HostnameVerifier {
+
+ @Override
+ public boolean verify(String arg0, SSLSession arg1) {
+ return true;
+ }
+
+ };
}