diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2008-08-09 06:11:54 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2008-08-09 06:11:54 +0000 |
commit | a49037c45192b749c045cbd27798f146192fa8d5 (patch) | |
tree | 84744e23c21bdf1312b3200ef270681c9a479c49 /java/sca/modules/host-jetty/src/test | |
parent | f30981d7dab6a6f9992bfd512b835cada3fa2d7f (diff) |
Enable the https support for embedded tomcat and jetty with unit tests
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@684186 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/host-jetty/src/test')
-rw-r--r-- | java/sca/modules/host-jetty/src/test/java/org/apache/tuscany/sca/http/jetty/JettyServerTestCase.java | 71 | ||||
-rw-r--r-- | java/sca/modules/host-jetty/src/test/resources/tuscany.keyStore | bin | 0 -> 1265 bytes |
2 files changed, 56 insertions, 15 deletions
diff --git a/java/sca/modules/host-jetty/src/test/java/org/apache/tuscany/sca/http/jetty/JettyServerTestCase.java b/java/sca/modules/host-jetty/src/test/java/org/apache/tuscany/sca/http/jetty/JettyServerTestCase.java index 4b8e4ae4f1..020dd4af0e 100644 --- a/java/sca/modules/host-jetty/src/test/java/org/apache/tuscany/sca/http/jetty/JettyServerTestCase.java +++ b/java/sca/modules/host-jetty/src/test/java/org/apache/tuscany/sca/http/jetty/JettyServerTestCase.java @@ -20,11 +20,16 @@ package org.apache.tuscany.sca.http.jetty; import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ConnectException; import java.net.Socket; +import java.net.URL; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLSession; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -93,6 +98,37 @@ public class JettyServerTestCase extends TestCase { assertTrue(servlet.invoked); } + public void testRegisterServletMappingSSL() throws Exception { + System.setProperty("javax.net.ssl.keyStore", "target/test-classes/tuscany.keyStore"); + System.setProperty("javax.net.ssl.keyStorePassword", "apache"); + System.setProperty("jetty.ssl.password", "apache"); + JettyServer service = new JettyServer(workScheduler); + TestServlet servlet = new TestServlet(); + try { + service.addServletMapping("https://127.0.0.1:" + HTTP_PORT + "/foo", servlet); + } finally { + System.clearProperty("javax.net.ssl.keyStore"); + System.clearProperty("javax.net.ssl.keyStorePassword"); + System.clearProperty("jetty.ssl.password"); + } + System.setProperty("javax.net.ssl.trustStore", "target/test-classes/tuscany.keyStore"); + System.setProperty("javax.net.ssl.trustStorePassword", "apache"); + URL url = new URL("https://127.0.0.1:8085/foo"); + HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); + conn.setHostnameVerifier(new HostnameVerifier() { + public boolean verify(String hostname, SSLSession session) { + return true; + }} + ); + + conn.connect(); + read(conn.getInputStream()); + + service.stop(); + assertTrue(servlet.invoked); + + } + /** * Verifies that Servlets can be registered with multiple ports */ @@ -116,7 +152,7 @@ public class JettyServerTestCase extends TestCase { os.flush(); read(client); } - + service.stop(); assertTrue(servlet.invoked); assertTrue(servlet2.invoked); @@ -172,50 +208,55 @@ public class JettyServerTestCase extends TestCase { assertNotNull(ex); service.stop(); } - + public void testResourceServlet() throws Exception { JettyServer service = new JettyServer(workScheduler); - + String documentRoot = getClass().getClassLoader().getResource("content/test.html").toString(); documentRoot = documentRoot.substring(0, documentRoot.lastIndexOf('/')); DefaultResourceServlet resourceServlet = new DefaultResourceServlet(documentRoot); TestResourceServlet servlet = new TestResourceServlet(resourceServlet); service.addServletMapping("http://127.0.0.1:" + HTTP_PORT + "/webcontent/*", servlet); - + Socket client = new Socket("127.0.0.1", HTTP_PORT); OutputStream os = client.getOutputStream(); os.write(REQUEST2.getBytes()); os.flush(); - + String document = read(client); assertTrue(document.indexOf("<body><p>hello</body>") != -1); - + service.stop(); } public void testDefaultServlet() throws Exception { JettyServer service = new JettyServer(workScheduler); - + String documentRoot = getClass().getClassLoader().getResource("content/test.html").toString(); documentRoot = documentRoot.substring(0, documentRoot.lastIndexOf('/')); DefaultResourceServlet resourceServlet = new DefaultResourceServlet(documentRoot); service.addServletMapping("http://127.0.0.1:" + HTTP_PORT + "/webcontent/*", resourceServlet); - + Socket client = new Socket("127.0.0.1", HTTP_PORT); OutputStream os = client.getOutputStream(); os.write(REQUEST2.getBytes()); os.flush(); - + String document = read(client); assertTrue(document.indexOf("<body><p>hello</body>") != -1); - + service.stop(); } private static String read(Socket socket) throws IOException { + InputStream is = socket.getInputStream(); + return read(is); + } + + private static String read(InputStream is) throws IOException { BufferedReader reader = null; try { - reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); + reader = new BufferedReader(new InputStreamReader(is)); StringBuffer sb = new StringBuffer(); String str; while ((str = reader.readLine()) != null) { @@ -251,11 +292,11 @@ public class JettyServerTestCase extends TestCase { private class TestResourceServlet extends HttpServlet { private static final long serialVersionUID = 1L; private HttpServlet delegate; - + public TestResourceServlet(HttpServlet delegate) { this.delegate = delegate; } - + @Override public void init() throws ServletException { super.init(); @@ -267,12 +308,12 @@ public class JettyServerTestCase extends TestCase { super.init(); delegate.init(config); } - + @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { delegate.service(req, resp); } - + @Override public void destroy() { super.destroy(); diff --git a/java/sca/modules/host-jetty/src/test/resources/tuscany.keyStore b/java/sca/modules/host-jetty/src/test/resources/tuscany.keyStore Binary files differnew file mode 100644 index 0000000000..7ea23f7ff4 --- /dev/null +++ b/java/sca/modules/host-jetty/src/test/resources/tuscany.keyStore |