You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2016/04/21 14:04:29 UTC

cxf git commit: Adding a pure Java SSLContext test

Repository: cxf
Updated Branches:
  refs/heads/master ea6a524ac -> 5b740ccf9


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
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;
+        }
+        
+    };
 }