Author: markt
Date: Tue Mar 12 21:08:28 2013
New Revision: 1455714

URL: http://svn.apache.org/r1455714
Log:
Add SSL. Test still passes.

Modified:
    tomcat/trunk/test/org/apache/tomcat/jni/TestSocket.java

Modified: tomcat/trunk/test/org/apache/tomcat/jni/TestSocket.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/jni/TestSocket.java?rev=1455714&r1=1455713&r2=1455714&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/jni/TestSocket.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/jni/TestSocket.java Tue Mar 12 21:08:28 
2013
@@ -16,14 +16,21 @@
  */
 package org.apache.tomcat.jni;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
+import java.security.SecureRandom;
+
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
 
 import org.junit.Assert;
 import org.junit.Test;
 
+import org.apache.tomcat.util.net.TesterSupport;
+
 public class TestSocket {
 
     private static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1");
@@ -50,7 +57,13 @@ public class TestSocket {
 
         // Open a connection to the server
         String host = null;
-        java.net.Socket socket = new java.net.Socket(host, port);
+        javax.net.ssl.SSLContext sc =
+                javax.net.ssl.SSLContext.getInstance("SSL");
+        sc.init(null, new TrustManager[] {new TesterSupport.TrustAllCerts()} ,
+                new SecureRandom());
+        SSLSocketFactory factory = sc.getSocketFactory();
+        java.net.Socket socket = factory.createSocket(host, port);
+
         // Infinite timeout
         socket.setSoTimeout(0);
         InputStream is = socket.getInputStream();
@@ -126,6 +139,7 @@ public class TestSocket {
         private final long rootPool;
         private final long serverSocket;
         private final long serverSocketPool;
+        private final long sslContext;
         private final long pollerPool;
         private final long poller;
 
@@ -153,6 +167,20 @@ public class TestSocket {
                 throw new IOException("Listen failed [" + ret + "]");
             }
 
+            // Setup SSL
+            SSL.randSet("builtin");
+            SSL.initialize(null);
+            sslContext = SSLContext.make(
+                    rootPool, SSL.SSL_PROTOCOL_ALL, SSL.SSL_MODE_SERVER);
+            SSLContext.setCipherSuite(sslContext, "ALL");
+            File certFile = new File(
+                    "test/org/apache/tomcat/util/net/localhost-cert.pem");
+            File keyFile = new File(
+                    "test/org/apache/tomcat/util/net/localhost-key.pem");
+            SSLContext.setCertificate(sslContext, certFile.getAbsolutePath(),
+                    keyFile.getAbsolutePath(), null, SSL.SSL_AIDX_RSA);
+            SSLContext.setVerify(sslContext, SSL.SSL_CVERIFY_NONE, 10);
+
             // Poller
             serverSocketPool = Pool.create(rootPool);
             pollerPool = Pool.create(serverSocketPool);
@@ -177,9 +205,16 @@ public class TestSocket {
                 // Accept an incoming connection
                 long socket = Socket.accept(serverSocket);
 
+                // Configure SSL
+                SSLSocket.attach(sslContext, socket);
+                if (SSLSocket.handshake(socket) != 0) {
+                    System.err.println("SSL handshake failed");
+                }
+
                 // Make socket non-blocking
                 Socket.timeoutSet(socket, 0);
 
+
                 int data = 0;
                 do {
                     String s = Integer.toString(data);



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to