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 2014/12/12 16:28:19 UTC

[5/5] cxf git commit: Another refactor of systests/transports to make the https tests more manageable

Another refactor of systests/transports to make the https tests more manageable


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/5e97d1e2
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/5e97d1e2
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/5e97d1e2

Branch: refs/heads/master
Commit: 5e97d1e29e85d80f0679748cc4df0d8e0647ee16
Parents: 8c128d1
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Fri Dec 12 15:27:24 2014 +0000
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Fri Dec 12 15:27:46 2014 +0000

----------------------------------------------------------------------
 .../cxf/systest/https/CertConstraintsTest.java  | 162 ----
 .../cxf/systest/https/ClientAuthServer.java     |  47 --
 .../cxf/systest/https/ClientAuthTest.java       | 246 ------
 .../cxf/systest/https/HTTPSClientTest.java      | 249 ------
 .../cxf/systest/https/HTTPSConduitTest.java     | 755 ------------------
 .../https/HTTPSProxyAuthConduitTest.java        | 111 ---
 .../systest/https/HTTPSProxyConduitTest.java    | 100 ---
 .../https/KeyPasswordCallbackHandler.java       |  39 -
 .../apache/cxf/systest/https/PushBack401.java   | 223 ------
 .../apache/cxf/systest/https/SSLv3Server.java   |  47 --
 .../org/apache/cxf/systest/https/SSLv3Test.java | 204 -----
 .../org/apache/cxf/systest/https/Server.java    | 100 ---
 .../https/clientauth/ClientAuthServer.java      |  47 ++
 .../https/clientauth/ClientAuthTest.java        | 246 ++++++
 .../systest/https/conduit/HTTPSClientTest.java  | 250 ++++++
 .../systest/https/conduit/HTTPSConduitTest.java | 761 +++++++++++++++++++
 .../conduit/HTTPSProxyAuthConduitTest.java      | 111 +++
 .../https/conduit/HTTPSProxyConduitTest.java    | 100 +++
 .../conduit/KeyPasswordCallbackHandler.java     |  39 +
 .../cxf/systest/https/conduit/PushBack401.java  | 223 ++++++
 .../cxf/systest/https/conduit/Server.java       | 100 +++
 .../https/constraints/CertConstraintsTest.java  | 163 ++++
 .../cxf/systest/https/ssl3/SSLv3Server.java     |  47 ++
 .../cxf/systest/https/ssl3/SSLv3Test.java       | 204 +++++
 .../org/apache/cxf/systest/https/Bethal.cxf     |  72 --
 .../cxf/systest/https/BethalClientBeans.xml     |  24 -
 .../cxf/systest/https/BethalClientConfig.cxf    |  57 --
 .../org/apache/cxf/systest/https/Gordy.cxf      |  65 --
 .../org/apache/cxf/systest/https/Morpit.cxf     |  63 --
 .../org/apache/cxf/systest/https/Mortimer.cxf   |  47 --
 .../org/apache/cxf/systest/https/Poltim.cxf     |  65 --
 .../org/apache/cxf/systest/https/Tarpin.cxf     |  65 --
 .../cxf/systest/https/client-auth-chain.xml     |  37 -
 .../cxf/systest/https/client-auth-invalid.xml   |  36 -
 .../cxf/systest/https/client-auth-invalid2.xml  |  36 -
 .../cxf/systest/https/client-auth-server.xml    |  72 --
 .../apache/cxf/systest/https/client-auth.xml    |  37 -
 .../https/clientauth/client-auth-chain.xml      |  37 +
 .../https/clientauth/client-auth-invalid.xml    |  36 +
 .../https/clientauth/client-auth-invalid2.xml   |  36 +
 .../https/clientauth/client-auth-server.xml     |  72 ++
 .../systest/https/clientauth/client-auth.xml    |  37 +
 .../apache/cxf/systest/https/conduit/Bethal.cxf |  72 ++
 .../systest/https/conduit/BethalClientBeans.xml |  24 +
 .../https/conduit/BethalClientConfig.cxf        |  57 ++
 .../apache/cxf/systest/https/conduit/Gordy.cxf  |  65 ++
 .../apache/cxf/systest/https/conduit/Morpit.cxf |  63 ++
 .../cxf/systest/https/conduit/Mortimer.cxf      |  47 ++
 .../apache/cxf/systest/https/conduit/Poltim.cxf |  65 ++
 .../apache/cxf/systest/https/conduit/Tarpin.cxf |  65 ++
 .../cxf/systest/https/conduit/greeting.wsdl     | 166 ++++
 .../https/conduit/jaxws-publish-callback.xml    |  64 ++
 .../cxf/systest/https/conduit/jaxws-publish.xml |  64 ++
 .../cxf/systest/https/conduit/jaxws-server.xml  |  77 ++
 .../https/conduit/jaxws-tlsrefs-publish.xml     |  60 ++
 .../apache/cxf/systest/https/conduit/pkcs12.xml |  70 ++
 .../https/conduit/resource-key-spec-url.xml     |  72 ++
 .../systest/https/conduit/resource-key-spec.xml |  68 ++
 .../constraints/jaxws-server-constraints.xml    | 255 +++++++
 .../org/apache/cxf/systest/https/greeting.wsdl  | 166 ----
 .../systest/https/jaxws-publish-callback.xml    |  64 --
 .../apache/cxf/systest/https/jaxws-publish.xml  |  64 --
 .../systest/https/jaxws-server-constraints.xml  | 255 -------
 .../apache/cxf/systest/https/jaxws-server.xml   |  77 --
 .../cxf/systest/https/jaxws-tlsrefs-publish.xml |  60 --
 .../org/apache/cxf/systest/https/pkcs12.xml     |  70 --
 .../cxf/systest/https/resource-key-spec-url.xml |  72 --
 .../cxf/systest/https/resource-key-spec.xml     |  68 --
 .../systest/https/ssl3/sslv3-client-allow.xml   |  34 +
 .../cxf/systest/https/ssl3/sslv3-client.xml     |  33 +
 .../cxf/systest/https/ssl3/sslv3-server.xml     | 100 +++
 .../cxf/systest/https/sslv3-client-allow.xml    |  34 -
 .../apache/cxf/systest/https/sslv3-client.xml   |  33 -
 .../apache/cxf/systest/https/sslv3-server.xml   | 100 ---
 74 files changed, 4030 insertions(+), 4022 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/5e97d1e2/systests/transports/src/test/java/org/apache/cxf/systest/https/CertConstraintsTest.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/https/CertConstraintsTest.java b/systests/transports/src/test/java/org/apache/cxf/systest/https/CertConstraintsTest.java
deleted file mode 100644
index 5b0856d..0000000
--- a/systests/transports/src/test/java/org/apache/cxf/systest/https/CertConstraintsTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.systest.https;
-
-import java.net.URL;
-
-import javax.xml.ws.BindingProvider;
-
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.configuration.Configurer;
-import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-import org.apache.hello_world.Greeter;
-import org.apache.hello_world.services.SOAPService;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/**
- * This test is meant to run against a spring-loaded HTTP/S service. It tests the certificate
- * constraints logic.
- */
-public class CertConstraintsTest extends AbstractBusClientServerTestBase {
-    //
-    // data
-    //
-    
-    @BeforeClass
-    public static void allocatePorts() {
-        BusServer.resetPortMap();
-    }
-    
-    /**
-     * the package path used to locate resources specific to this test
-     */
-    private void setTheConfiguration(String config) {
-        //System.setProperty("javax.net.debug", "all");
-        try {
-            System.setProperty(
-                Configurer.USER_CFG_FILE_PROPERTY_URL,
-                CertConstraintsTest.class.getResource(config).toString()
-            );
-        } catch (final Exception e) {
-            e.printStackTrace();
-        }
-    }
-          
-    public void startServers() throws Exception {
-        assertTrue(
-            "Server failed to launch",
-            // run the server in the same process
-            // set this to false to fork a new process
-            launchServer(BusServer.class, true)
-        );
-    }
-    
-    
-    public void stopServers() throws Exception {
-        stopAllServers();
-        System.clearProperty(Configurer.USER_CFG_FILE_PROPERTY_URL);
-        BusFactory.setDefaultBus(null);
-        BusFactory.setThreadDefaultBus(null);
-    }    
-    
-    
-    //
-    // tests
-    //
-    public final void testSuccessfulCall(String address) throws Exception {
-        URL url = SOAPService.WSDL_LOCATION;
-        SOAPService service = new SOAPService(url, SOAPService.SERVICE);
-        assertNotNull("Service is null", service);   
-        final Greeter port = service.getHttpsPort();
-        assertNotNull("Port is null", port);
-        
-        BindingProvider provider = (BindingProvider)port;
-        provider.getRequestContext().put(
-              BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
-              address);
-        
-        assertEquals(port.greetMe("Kitty"), "Hello Kitty");
-    }
-    
-    public final void testFailedCall(String address) throws Exception {
-        URL url = SOAPService.WSDL_LOCATION;
-        SOAPService service = new SOAPService(url, SOAPService.SERVICE);
-        assertNotNull("Service is null", service);   
-        final Greeter port = service.getHttpsPort();
-        assertNotNull("Port is null", port);
-
-        BindingProvider provider = (BindingProvider)port;
-        provider.getRequestContext().put(
-                BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
-                address);
-
-        try {
-            assertEquals(port.greetMe("Kitty"), "Hello Kitty");
-            fail("Failure expected");
-        } catch (javax.xml.ws.soap.SOAPFaultException ex) {
-            // expected
-        } catch (javax.xml.ws.WebServiceException ex) {
-            // expected
-        }
-    }
-    
-    @Test
-    public final void testCertConstraints() throws Exception {
-        setTheConfiguration("jaxws-server-constraints.xml");
-        startServers();
-        
-        //
-        // Good Subject DN
-        //
-        testSuccessfulCall("https://localhost:" + BusServer.getPort(0) + "/SoapContext/HttpsPort");
-        //
-        // Bad Subject DN
-        //
-        testFailedCall("https://localhost:" + BusServer.getPort(1) + "/SoapContext/HttpsPort");
-        //
-        // Mixed Subject DN (ALL)
-        //
-        testFailedCall("https://localhost:" + BusServer.getPort(2) + "/SoapContext/HttpsPort");
-        //
-        // Mixed Subject DN (ANY)
-        //
-        testSuccessfulCall("https://localhost:" + BusServer.getPort(3) + "/SoapContext/HttpsPort");
-        //
-        // Mixed Issuer DN (ALL)
-        //
-        testFailedCall("https://localhost:" + BusServer.getPort(4) + "/SoapContext/HttpsPort");
-        //
-        // Mixed Issuer DN (ANY)
-        //
-        testSuccessfulCall("https://localhost:" + BusServer.getPort(5) + "/SoapContext/HttpsPort");
-        //
-        // Bad server Subject DN
-        //
-        testFailedCall("https://localhost:" + BusServer.getPort(6) + "/SoapContext/HttpsPort");
-        //
-        // Bad server Issuer DN
-        //
-        testFailedCall("https://localhost:" + BusServer.getPort(7) + "/SoapContext/HttpsPort");
-        
-        stopServers();
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/5e97d1e2/systests/transports/src/test/java/org/apache/cxf/systest/https/ClientAuthServer.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/https/ClientAuthServer.java b/systests/transports/src/test/java/org/apache/cxf/systest/https/ClientAuthServer.java
deleted file mode 100644
index 5108a22..0000000
--- a/systests/transports/src/test/java/org/apache/cxf/systest/https/ClientAuthServer.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.systest.https;
-
-import java.net.URL;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.bus.spring.SpringBusFactory;
-import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
-
-public class ClientAuthServer extends AbstractBusTestServerBase {
-
-    public ClientAuthServer() {
-
-    }
-
-    protected void run()  {
-        URL busFile = Server.class.getResource("client-auth-server.xml");
-        Bus busLocal = new SpringBusFactory().createBus(busFile);
-        BusFactory.setDefaultBus(busLocal);
-        setBus(busLocal);
-
-        try {
-            new ClientAuthServer();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/5e97d1e2/systests/transports/src/test/java/org/apache/cxf/systest/https/ClientAuthTest.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/https/ClientAuthTest.java b/systests/transports/src/test/java/org/apache/cxf/systest/https/ClientAuthTest.java
deleted file mode 100644
index 387a508..0000000
--- a/systests/transports/src/test/java/org/apache/cxf/systest/https/ClientAuthTest.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.systest.https;
-
-import java.net.URL;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.bus.spring.SpringBusFactory;
-import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-import org.apache.hello_world.Greeter;
-import org.apache.hello_world.services.SOAPService;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-
-/**
- * A set of tests for TLS client authentication.
- */
-public class ClientAuthTest extends AbstractBusClientServerTestBase {
-    static final String PORT = allocatePort(ClientAuthServer.class);
-    static final String PORT2 = allocatePort(ClientAuthServer.class, 2);
-    
-    @BeforeClass
-    public static void startServers() throws Exception {
-        assertTrue(
-            "Server failed to launch",
-            // run the server in the same process
-            // set this to false to fork
-            launchServer(ClientAuthServer.class, true)
-        );
-    }
-    
-    @AfterClass
-    public static void cleanup() throws Exception {
-        stopAllServers();
-    }
-
-    // Server directly trusts the client cert
-    @org.junit.Test
-    public void testDirectTrust() throws Exception {
-        SpringBusFactory bf = new SpringBusFactory();
-        URL busFile = ClientAuthTest.class.getResource("client-auth.xml");
-
-        Bus bus = bf.createBus(busFile.toString());
-        SpringBusFactory.setDefaultBus(bus);
-        SpringBusFactory.setThreadDefaultBus(bus);
-        
-        URL url = SOAPService.WSDL_LOCATION;
-        SOAPService service = new SOAPService(url, SOAPService.SERVICE);
-        assertNotNull("Service is null", service);   
-        final Greeter port = service.getHttpsPort();
-        assertNotNull("Port is null", port);
-        
-        updateAddressPort(port, PORT);
-        
-        assertEquals(port.greetMe("Kitty"), "Hello Kitty");
-        
-        ((java.io.Closeable)port).close();
-        bus.shutdown(true);
-    }
-    
-    // Server does not (directly) trust the client cert
-    @org.junit.Test
-    public void testInvalidDirectTrust() throws Exception {
-        SpringBusFactory bf = new SpringBusFactory();
-        URL busFile = ClientAuthTest.class.getResource("client-auth-invalid.xml");
-
-        Bus bus = bf.createBus(busFile.toString());
-        SpringBusFactory.setDefaultBus(bus);
-        SpringBusFactory.setThreadDefaultBus(bus);
-        
-        URL url = SOAPService.WSDL_LOCATION;
-        SOAPService service = new SOAPService(url, SOAPService.SERVICE);
-        assertNotNull("Service is null", service);   
-        final Greeter port = service.getHttpsPort();
-        assertNotNull("Port is null", port);
-        
-        updateAddressPort(port, PORT);
-        
-        try {
-            port.greetMe("Kitty");
-            fail("Failure expected on an untrusted cert");
-        } catch (Exception ex) {
-            // expected
-        }
-        
-        ((java.io.Closeable)port).close();
-        bus.shutdown(true);
-    }
-    
-    // Client does not specify a KeyStore, only a TrustStore
-    @org.junit.Test
-    public void testNoClientCert() throws Exception {
-        SpringBusFactory bf = new SpringBusFactory();
-        URL busFile = ClientAuthTest.class.getResource("sslv3-client.xml");
-
-        Bus bus = bf.createBus(busFile.toString());
-        SpringBusFactory.setDefaultBus(bus);
-        SpringBusFactory.setThreadDefaultBus(bus);
-        
-        URL url = SOAPService.WSDL_LOCATION;
-        SOAPService service = new SOAPService(url, SOAPService.SERVICE);
-        assertNotNull("Service is null", service);   
-        final Greeter port = service.getHttpsPort();
-        assertNotNull("Port is null", port);
-        
-        updateAddressPort(port, PORT);
-        
-        try {
-            port.greetMe("Kitty");
-            fail("Failure expected on no trusted cert");
-        } catch (Exception ex) {
-            // expected
-        }
-        
-        ((java.io.Closeable)port).close();
-        bus.shutdown(true);
-    }
-    
-    // Server trusts the issuer of the client cert
-    @org.junit.Test
-    public void testChainTrust() throws Exception {
-        SpringBusFactory bf = new SpringBusFactory();
-        URL busFile = ClientAuthTest.class.getResource("client-auth-chain.xml");
-
-        Bus bus = bf.createBus(busFile.toString());
-        SpringBusFactory.setDefaultBus(bus);
-        SpringBusFactory.setThreadDefaultBus(bus);
-        
-        URL url = SOAPService.WSDL_LOCATION;
-        SOAPService service = new SOAPService(url, SOAPService.SERVICE);
-        assertNotNull("Service is null", service);   
-        final Greeter port = service.getHttpsPort();
-        assertNotNull("Port is null", port);
-        
-        updateAddressPort(port, PORT2);
-        
-        assertEquals(port.greetMe("Kitty"), "Hello Kitty");
-        
-        ((java.io.Closeable)port).close();
-        bus.shutdown(true);
-    }
-    
-    // Server does not trust the issuer of the client cert
-    @org.junit.Test
-    public void testInvalidChainTrust() throws Exception {
-        SpringBusFactory bf = new SpringBusFactory();
-        URL busFile = ClientAuthTest.class.getResource("client-auth-invalid2.xml");
-
-        Bus bus = bf.createBus(busFile.toString());
-        SpringBusFactory.setDefaultBus(bus);
-        SpringBusFactory.setThreadDefaultBus(bus);
-        
-        URL url = SOAPService.WSDL_LOCATION;
-        SOAPService service = new SOAPService(url, SOAPService.SERVICE);
-        assertNotNull("Service is null", service);   
-        final Greeter port = service.getHttpsPort();
-        assertNotNull("Port is null", port);
-        
-        updateAddressPort(port, PORT2);
-        
-        try {
-            port.greetMe("Kitty");
-            fail("Failure expected on no trusted cert");
-        } catch (Exception ex) {
-            // expected
-        }
-        
-        ((java.io.Closeable)port).close();
-        bus.shutdown(true);
-    }
-    
-    // Client does not trust the issuer of the server cert
-    @org.junit.Test
-    public void testClientInvalidCertChain() throws Exception {
-        SpringBusFactory bf = new SpringBusFactory();
-        URL busFile = ClientAuthTest.class.getResource("client-auth-invalid2.xml");
-
-        Bus bus = bf.createBus(busFile.toString());
-        SpringBusFactory.setDefaultBus(bus);
-        SpringBusFactory.setThreadDefaultBus(bus);
-        
-        URL url = SOAPService.WSDL_LOCATION;
-        SOAPService service = new SOAPService(url, SOAPService.SERVICE);
-        assertNotNull("Service is null", service);   
-        final Greeter port = service.getHttpsPort();
-        assertNotNull("Port is null", port);
-        
-        updateAddressPort(port, PORT);
-        
-        try {
-            port.greetMe("Kitty");
-            fail("Failure expected on no trusted cert");
-        } catch (Exception ex) {
-            // expected
-        }
-        
-        ((java.io.Closeable)port).close();
-        bus.shutdown(true);
-    }
-    
-    // Client does not directly trust the server cert
-    @org.junit.Test
-    public void testClientInvalidDirectTrust() throws Exception {
-        SpringBusFactory bf = new SpringBusFactory();
-        URL busFile = ClientAuthTest.class.getResource("client-auth-invalid.xml");
-
-        Bus bus = bf.createBus(busFile.toString());
-        SpringBusFactory.setDefaultBus(bus);
-        SpringBusFactory.setThreadDefaultBus(bus);
-        
-        URL url = SOAPService.WSDL_LOCATION;
-        SOAPService service = new SOAPService(url, SOAPService.SERVICE);
-        assertNotNull("Service is null", service);   
-        final Greeter port = service.getHttpsPort();
-        assertNotNull("Port is null", port);
-        
-        updateAddressPort(port, PORT2);
-        
-        try {
-            port.greetMe("Kitty");
-            fail("Failure expected on no trusted cert");
-        } catch (Exception ex) {
-            // expected
-        }
-        
-        ((java.io.Closeable)port).close();
-        bus.shutdown(true);
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/5e97d1e2/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSClientTest.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSClientTest.java b/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSClientTest.java
deleted file mode 100644
index 8bc2fe0..0000000
--- a/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSClientTest.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.systest.https;
-
-import java.net.URL;
-
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.TrustManager;
-import javax.xml.ws.BindingProvider;
-
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.configuration.Configurer;
-import org.apache.cxf.configuration.jsse.TLSParameterJaxBUtils;
-import org.apache.cxf.configuration.security.KeyManagersType;
-import org.apache.cxf.configuration.security.KeyStoreType;
-import org.apache.cxf.configuration.security.TrustManagersType;
-import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
-import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-import org.apache.hello_world.Greeter;
-import org.apache.hello_world.services.SOAPService;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/**
- * This test is meant to run against a spring-loaded
- * HTTP/S service.
- */
-public class HTTPSClientTest extends AbstractBusClientServerTestBase {
-    //
-    // data
-    //
-    
-    /**
-     * the package path used to locate resources specific to this test
-     */
-    private void setTheConfiguration(String config) {
-        //System.setProperty("javax.net.debug", "all");
-        try {
-            System.setProperty(
-                Configurer.USER_CFG_FILE_PROPERTY_URL,
-                HTTPSClientTest.class.getResource(config).toString()
-            );
-        } catch (final Exception e) {
-            e.printStackTrace();
-        }
-    }
-    
-    @BeforeClass
-    public static void setupPorts() {
-        BusServer.resetPortMap();
-    }
-          
-    public void startServers() throws Exception {
-        assertTrue(
-            "Server failed to launch",
-            // run the server in the same process
-            // set this to false to fork a new process
-            launchServer(BusServer.class, true)
-        );
-    }
-    
-    
-    public void stopServers() throws Exception {
-        stopAllServers();
-        System.clearProperty(Configurer.USER_CFG_FILE_PROPERTY_URL);
-        BusFactory.setDefaultBus(null);
-        BusFactory.setThreadDefaultBus(null);
-    }    
-    
-    
-    //
-    // tests
-    //
-    public final void testSuccessfulCall(String configuration,
-                                         String address) throws Exception {
-        testSuccessfulCall(configuration, address, null);
-    }
-    public final void testSuccessfulCall(String configuration,
-                                         String address,
-                                         URL url) throws Exception {
-        testSuccessfulCall(configuration, address, url, false);
-    }
-    public final void testSuccessfulCall(String configuration,
-                                         String address,
-                                         URL url, 
-                                         boolean dynamicClient) throws Exception {
-        setTheConfiguration(configuration);
-        startServers();
-        if (url == null) {
-            url = SOAPService.WSDL_LOCATION;
-        }
-        
-        //CXF-4037 - dynamic client isn't using the conduit settings to resolve schemas
-        if (dynamicClient) {
-            ClassLoader loader = Thread.currentThread().getContextClassLoader();
-            JaxWsDynamicClientFactory.newInstance(BusFactory.getDefaultBus())
-                .createClient(url.toExternalForm());
-            Thread.currentThread().setContextClassLoader(loader);
-        }
-
-        
-        
-        SOAPService service = new SOAPService(url, SOAPService.SERVICE);
-        assertNotNull("Service is null", service);   
-        final Greeter port = service.getHttpsPort();
-        assertNotNull("Port is null", port);
-        
-        BindingProvider provider = (BindingProvider)port;
-        provider.getRequestContext().put(
-              BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
-              address);
-        
-        //provider.getRequestContext().put("use.async.http.conduit", Boolean.TRUE);
-        //for (int x = 0; x < 100000; x++) {
-        assertEquals(port.greetMe("Kitty"), "Hello Kitty");
-        //}
-        
-        
-        stopServers();
-    }
-    
-    @Test
-    public final void testJaxwsServer() throws Exception {
-        testSuccessfulCall("jaxws-server.xml", 
-                           "https://localhost:" + BusServer.getPort(2) + "/SoapContext/HttpsPort");        
-    }
-    @Test
-    public final void testJaxwsServerChangeHttpsToHttp() throws Exception {
-        testSuccessfulCall("jaxws-server.xml", 
-                            "http://localhost:" + BusServer.getPort(3) + "/SoapContext/HttpPort");    
-    }    
-    @Test
-    public final void testJaxwsEndpoint() throws Exception {
-        testSuccessfulCall("jaxws-publish.xml",
-                           "https://localhost:" + BusServer.getPort(1) + "/SoapContext/HttpsPort");
-    }
-    @Test
-    public final void testJaxwsEndpointCallback() throws Exception {
-        testSuccessfulCall("jaxws-publish-callback.xml",
-                           "https://localhost:" + BusServer.getPort(1) + "/SoapContext/HttpsPort");
-    }
-    @Test
-    public final void testJaxwsTLSRefsEndpoint() throws Exception {
-        testSuccessfulCall("jaxws-tlsrefs-publish.xml",
-                           "https://localhost:" + BusServer.getPort(1) + "/SoapContext/HttpsPort");
-    }
-    @Test
-    public final void testPKCS12Endpoint() throws Exception {
-        testSuccessfulCall("pkcs12.xml",
-                           "https://localhost:" + BusServer.getPort(6) + "/SoapContext/HttpsPort");
-    }
-    
-    @Test
-    public final void testResourceKeySpecEndpoint() throws Exception {
-        testSuccessfulCall("resource-key-spec.xml",
-                           "https://localhost:" + BusServer.getPort(4) + "/SoapContext/HttpsPort");
-    }
-    @Test
-    public final void testResourceKeySpecEndpointURL() throws Exception {
-        testSuccessfulCall("resource-key-spec-url.xml",
-                           "https://localhost:" + BusServer.getPort(5) + "/SoapContext/HttpsPort",
-                           new URL("https://localhost:" + BusServer.getPort(5) + "/SoapContext/HttpsPort?wsdl"),
-                           true);
-        
-    }
-    
-    public static class ServerManagersFactory {
-        public static KeyManager[] getKeyManagers() {
-            KeyManagersType kmt = new KeyManagersType();
-            KeyStoreType kst = new KeyStoreType();
-            kst.setFile("src/test/resources/keys/Bethal.jks");
-            kst.setPassword("password");
-            kst.setType("JKS");
-        
-            kmt.setKeyStore(kst);
-            kmt.setKeyPassword("password");
-            try {
-                return TLSParameterJaxBUtils.getKeyManagers(kmt);
-            } catch (Exception e) {
-                throw new RuntimeException("failed to retrieve key managers", e);
-            }
-        }
-    
-        public static TrustManager[] getTrustManagers() {
-            TrustManagersType tmt = new TrustManagersType();
-            KeyStoreType kst = new KeyStoreType();
-            kst.setFile("src/test/resources/keys/Truststore.jks");
-            kst.setPassword("password");
-            kst.setType("JKS");
-        
-            tmt.setKeyStore(kst);
-            try {
-                return TLSParameterJaxBUtils.getTrustManagers(tmt);
-            } catch (Exception e) {
-                throw new RuntimeException("failed to retrieve trust managers", e);
-            }
-        }
-    }
-
-    public static class ClientManagersFactory {
-        public static KeyManager[] getKeyManagers() {
-            KeyManagersType kmt = new KeyManagersType();
-            KeyStoreType kst = new KeyStoreType();
-            kst.setFile("src/test/resources/keys/Morpit.jks");
-            kst.setPassword("password");
-            kst.setType("JKS");
-        
-            kmt.setKeyStore(kst);
-            kmt.setKeyPassword("password");
-            try {
-                return TLSParameterJaxBUtils.getKeyManagers(kmt);
-            } catch (Exception e) {
-                throw new RuntimeException("failed to retrieve key managers", e);
-            }
-        }
-    
-        public static TrustManager[] getTrustManagers() {
-            TrustManagersType tmt = new TrustManagersType();
-            KeyStoreType kst = new KeyStoreType();
-            kst.setFile("src/test/resources/keys/Truststore.jks");
-            kst.setPassword("password");
-            kst.setType("JKS");
-        
-            tmt.setKeyStore(kst);
-            try {
-                return TLSParameterJaxBUtils.getTrustManagers(tmt);
-            } catch (Exception e) {
-                throw new RuntimeException("failed to retrieve trust managers", e);
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/5e97d1e2/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSConduitTest.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSConduitTest.java b/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSConduitTest.java
deleted file mode 100644
index c375e7e..0000000
--- a/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSConduitTest.java
+++ /dev/null
@@ -1,755 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.systest.https;
-
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URL;
-import java.security.GeneralSecurityException;
-import java.security.KeyStore;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.TrustManagerFactory;
-import javax.xml.namespace.QName;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.bus.spring.BusApplicationContext;
-import org.apache.cxf.bus.spring.SpringBusFactory;
-import org.apache.cxf.common.util.Base64Utility;
-import org.apache.cxf.configuration.jsse.TLSClientParameters;
-import org.apache.cxf.configuration.security.AuthorizationPolicy;
-import org.apache.cxf.endpoint.Client;
-import org.apache.cxf.frontend.ClientProxy;
-import org.apache.cxf.message.Message;
-import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-import org.apache.cxf.transport.http.HTTPConduit;
-import org.apache.cxf.transport.http.MessageTrustDecider;
-import org.apache.cxf.transport.http.URLConnectionInfo;
-import org.apache.cxf.transport.http.UntrustedURLConnectionIOException;
-import org.apache.cxf.transport.http.auth.HttpAuthHeader;
-import org.apache.cxf.transport.http.auth.HttpAuthSupplier;
-import org.apache.cxf.transport.https.HttpsURLConnectionInfo;
-import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
-import org.apache.hello_world.Greeter;
-import org.apache.hello_world.services.SOAPService;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.springframework.context.ApplicationContext;
-
-/**
- * This class tests several issues and Conduit policies based 
- * on a set up of redirecting servers.
- * <pre>
- * 
- * Http Redirection:
- * 
- * Poltim(https:9005)  ----> Mortimer (http:9000)
- * 
- * HttpS redirection/Trust:
- * 
- * Tarpin(https:9003) ----> Gordy(https:9001) ----> Bethal(https:9002)
- * 
- * Hostname Verifier Test
- * 
- * Morpit (https:9008)
- * 
- * </pre>HTTPConduitTest
- * The Bethal server issues 401 with differing realms depending on the
- * User name given in the authorization header.
- * <p>
- * The Morpit has a CN that is not equal to "localhost" to kick in
- * the Hostname Verifier.
- */
-public class HTTPSConduitTest extends AbstractBusClientServerTestBase {
-    private static final boolean IN_PROCESS = true;
-    
-    private static TLSClientParameters tlsClientParameters = new TLSClientParameters();
-    private static List<String> servers = new ArrayList<String>();
-
-    private static Map<String, String> addrMap = new TreeMap<String, String>();
-    
-    static {
-        try {
-            //System.setProperty("javax.net.debug", "all");
-            URL key = Server.class.getResource("../../../../../keys/Morpit.jks");
-            String keystore = new File(key.toURI()).getAbsolutePath();
-            //System.out.println("Keystore: " + keystore);
-            KeyManager[] kmgrs = getKeyManagers(getKeyStore("JKS", keystore, "password"), "password");
-            
-            key = Server.class.getResource("../../../../../keys/Truststore.jks");
-            
-            String truststore = new File(key.toURI()).getAbsolutePath();
-            //System.out.println("Truststore: " + truststore);
-            TrustManager[] tmgrs = getTrustManagers(getKeyStore("JKS", truststore, "password"));
-            
-            tlsClientParameters.setKeyManagers(kmgrs);
-            tlsClientParameters.setTrustManagers(tmgrs);
-        } catch (Exception e) {
-            throw new RuntimeException("Static initialization failed", e);
-        }
-    }
-
-    private final QName serviceName = 
-        new QName("http://apache.org/hello_world", "SOAPService");
-    private final QName bethalQ = 
-        new QName("http://apache.org/hello_world", "Bethal");
-    private final QName gordyQ = 
-        new QName("http://apache.org/hello_world", "Gordy");
-    private final QName tarpinQ = 
-        new QName("http://apache.org/hello_world", "Tarpin");
-    private final QName poltimQ = 
-        new QName("http://apache.org/hello_world", "Poltim");
-
-    public HTTPSConduitTest() {
-    }
-    
-    
-    public static String getPort(String s) {
-        return BusServer.PORTMAP.get(s);
-    }
-    
-    @BeforeClass
-    public static void allocatePorts() {
-        BusServer.resetPortMap();
-        addrMap.clear();
-        addrMap.put("Mortimer", "http://localhost:" + getPort("PORT0") + "/");
-        addrMap.put("Tarpin",   "https://localhost:" + getPort("PORT1") + "/");
-        addrMap.put("Poltim",   "https://localhost:" + getPort("PORT2") + "/");
-        addrMap.put("Gordy",    "https://localhost:" + getPort("PORT3") + "/");
-        addrMap.put("Bethal",   "https://localhost:" + getPort("PORT4") + "/");
-        addrMap.put("Morpit",   "https://localhost:" + getPort("PORT5") + "/");
-        tlsClientParameters.setDisableCNCheck(true);
-        servers.clear();
-    }
-
-
-    /**
-     * This function is used to start up a server. It only "starts" a
-     * server if it hasn't been started before, hence its static nature.
-     * <p>
-     * This approach is used to start the needed servers for a particular test
-     * instead of starting them all in "startServers". This single needed
-     * server approach allieviates the pain in starting them all just to run
-     * a particular test in the debugger.
-     */
-    public synchronized boolean startServer(String name) {
-        if (servers.contains(name)) {
-            return true;
-        }
-        Bus bus = BusFactory.getThreadDefaultBus(false);
-        URL serverC =
-            Server.class.getResource(name + ".cxf");
-        BusFactory.setDefaultBus(null);
-        BusFactory.setThreadDefaultBus(null);
-        boolean server = launchServer(Server.class, null,
-                new String[] { 
-                    name, 
-                    addrMap.get(name),
-                    serverC.toString() }, 
-                IN_PROCESS);
-        if (server) {
-            servers.add(name);
-        }
-        BusFactory.setDefaultBus(null);
-        BusFactory.setThreadDefaultBus(bus);
-        return server;
-    }
-    
-    @AfterClass
-    public static void cleanUp() {
-        Bus b = BusFactory.getDefaultBus(false);
-        if (b != null) {
-            b.shutdown(true);
-        }
-        b = BusFactory.getThreadDefaultBus(false);
-        if (b != null) {
-            b.shutdown(true);
-        }
-    }
-
-    public static KeyStore getKeyStore(String ksType, String file, String ksPassword)
-        throws GeneralSecurityException,
-               IOException {
-        
-        String type = ksType != null
-                    ? ksType
-                    : KeyStore.getDefaultType();
-                    
-        char[] password = ksPassword != null
-                    ? ksPassword.toCharArray()
-                    : null;
-
-        // We just use the default Keystore provider
-        KeyStore keyStore = KeyStore.getInstance(type);
-        
-        keyStore.load(new FileInputStream(file), password);
-        
-        return keyStore;
-    }
-
-    public static KeyManager[] getKeyManagers(KeyStore keyStore, String keyPassword) 
-        throws GeneralSecurityException,
-               IOException {
-        // For tests, we just use the default algorithm
-        String alg = KeyManagerFactory.getDefaultAlgorithm();
-        
-        char[] keyPass = keyPassword != null
-                     ? keyPassword.toCharArray()
-                     : null;
-        
-        // For tests, we just use the default provider.
-        KeyManagerFactory fac = KeyManagerFactory.getInstance(alg);
-                     
-        fac.init(keyStore, keyPass);
-        
-        return fac.getKeyManagers();
-    }
-
-    public static TrustManager[] getTrustManagers(KeyStore keyStore) 
-        throws GeneralSecurityException,
-               IOException {
-        // For tests, we just use the default algorithm
-        String alg = TrustManagerFactory.getDefaultAlgorithm();
-        
-        // For tests, we just use the default provider.
-        TrustManagerFactory fac = TrustManagerFactory.getInstance(alg);
-                     
-        fac.init(keyStore);
-        
-        return fac.getTrustManagers();
-    }
-
-    //methods that a subclass can override to inject a Proxy into the flow
-    //and assert the proxy was appropriately called
-    public void configureProxy(Client c) {
-    }
-    public void resetProxyCount() {
-    }
-    public void assertProxyRequestCount(int i) {
-    }
-
-    /**
-     * We use this class to reset the default bus.
-     * Note: This may not always work in the future.
-     * I was lucky in that "defaultBus" is actually a 
-     * protected static.
-     */
-    class DefaultBusFactory extends SpringBusFactory {
-        public Bus createBus(URL config) {
-            Bus bus = super.createBus(config, true);
-            BusFactory.setDefaultBus(bus);
-            BusFactory.setThreadDefaultBus(bus);
-            return bus;
-        }
-    }
-    
-    /**
-     * This methods tests a basic https connection to Bethal.
-     * It supplies an authorization policy with preemptive user/pass
-     * to avoid the 401.
-     */
-    @Test
-    public void testHttpsBasicConnectionWithConfig() throws Exception {
-        startServer("Bethal");
-
-        URL config = getClass().getResource("BethalClientConfig.cxf");
-        
-        // We go through the back door, setting the default bus.
-        new DefaultBusFactory().createBus(config);
-        URL wsdl = getClass().getResource("greeting.wsdl");
-        assertNotNull("WSDL is null", wsdl);
-
-        SOAPService service = new SOAPService(wsdl, serviceName);
-        assertNotNull("Service is null", service);
-
-        Greeter bethal = service.getPort(bethalQ, Greeter.class);
-
-        assertNotNull("Port is null", bethal);
-        updateAddressPort(bethal, getPort("PORT4"));
-        verifyBethalClient(bethal);        
-    }
-    
-    @Test
-    public void testGetClientFromSpringContext() throws Exception {
-        startServer("Bethal");        
-        
-        BusFactory.setDefaultBus(null);
-        // The client bean configuration file
-        URL beans = getClass().getResource("BethalClientBeans.xml");
-        // We go through the back door, setting the default bus.
-        Bus bus = new DefaultBusFactory().createBus(beans);
-        
-        ApplicationContext context = bus.getExtension(BusApplicationContext.class);
-        Greeter bethal = (Greeter)context.getBean("Bethal");        
-        updateAddressPort(bethal, getPort("PORT4"));
-        // verify the client side's setting
-        verifyBethalClient(bethal);         
-    }
-    
-    // we just verify the configurations are loaded successfully
-    private void verifyBethalClient(Greeter bethal) {
-        Client client = ClientProxy.getClient(bethal);
-
-        HTTPConduit http = 
-            (HTTPConduit) client.getConduit();
-        
-        HTTPClientPolicy httpClientPolicy = http.getClient();
-        assertEquals("the httpClientPolicy's autoRedirect should be true",
-                     true, httpClientPolicy.isAutoRedirect());
-        TLSClientParameters tlsParameters = http.getTlsClientParameters();
-        assertNotNull("the http conduit's tlsParameters should not be null", tlsParameters);
-        
-        
-        // If we set any name, but Edward, Mary, or George,
-        // and a password of "password" we will get through
-        // Bethal.
-        AuthorizationPolicy authPolicy = http.getAuthorization();
-        assertEquals("Set the wrong user name from the configuration",
-                     "Betty", authPolicy.getUserName());
-        assertEquals("Set the wrong pass word form the configuration",
-                     "password", authPolicy.getPassword());
-
-        configureProxy(ClientProxy.getClient(bethal));
-        
-        String answer = bethal.sayHi();
-        answer = bethal.sayHi();
-        answer = bethal.sayHi();
-        answer = bethal.sayHi();
-        answer = bethal.sayHi();
-        assertTrue("Unexpected answer: " + answer, 
-                "Bonjour from Bethal".equals(answer));
-        
-        //With HTTPS, it will just be a CONNECT to the proxy and all the 
-        //data is encrypted.  Thus, the proxy cannot distinquish the requests
-        assertProxyRequestCount(0);
-    }
-    
-    /**
-     * This methods tests a basic https connection to Bethal.
-     * It supplies an authorization policy with premetive user/pass
-     * to avoid the 401.
-     */
-    @Test
-    public void testHttpsBasicConnection() throws Exception {
-        startServer("Bethal");
-
-        URL wsdl = getClass().getResource("greeting.wsdl");
-        assertNotNull("WSDL is null", wsdl);
-
-        SOAPService service = new SOAPService(wsdl, serviceName);
-        assertNotNull("Service is null", service);
-
-        Greeter bethal = service.getPort(bethalQ, Greeter.class);
-        assertNotNull("Port is null", bethal);
-        updateAddressPort(bethal, getPort("PORT4"));
-        
-        // Okay, I'm sick of configuration files.
-        // This also tests dynamic configuration of the conduit.
-        Client client = ClientProxy.getClient(bethal);
-        HTTPConduit http = 
-            (HTTPConduit) client.getConduit();
-        
-        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
-        
-        httpClientPolicy.setAutoRedirect(false);
-        // If we set any name, but Edward, Mary, or George,
-        // and a password of "password" we will get through
-        // Bethal.
-        AuthorizationPolicy authPolicy = new AuthorizationPolicy();
-        authPolicy.setUserName("Betty");
-        authPolicy.setPassword("password");
-        
-        http.setClient(httpClientPolicy);
-        http.setTlsClientParameters(tlsClientParameters);
-        http.setAuthorization(authPolicy);
-        
-        configureProxy(client);
-        String answer = bethal.sayHi();
-        assertTrue("Unexpected answer: " + answer, 
-                "Bonjour from Bethal".equals(answer));
-        assertProxyRequestCount(0);
-    }
-    
-
-    @Test
-    public void testHttpsRedirectToHttpFail() throws Exception {
-        startServer("Mortimer");
-        startServer("Poltim");
-
-        URL wsdl = getClass().getResource("greeting.wsdl");
-        assertNotNull("WSDL is null", wsdl);
-
-        SOAPService service = new SOAPService(wsdl, serviceName);
-        assertNotNull("Service is null", service);
-
-        Greeter poltim = service.getPort(poltimQ, Greeter.class);
-        assertNotNull("Port is null", poltim);
-        updateAddressPort(poltim, getPort("PORT2"));
-
-        // Okay, I'm sick of configuration files.
-        // This also tests dynamic configuration of the conduit.
-        Client client = ClientProxy.getClient(poltim);
-        HTTPConduit http = 
-            (HTTPConduit) client.getConduit();
-        
-        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
-        
-        httpClientPolicy.setAutoRedirect(true);
-        
-        http.setClient(httpClientPolicy);
-        http.setTlsClientParameters(tlsClientParameters);
-        configureProxy(client);
-        poltim.sayHi();
-        //client -> poltim is https and thus not recorded but then redirected to mortimer
-        //client -> mortimer is http and recoreded
-        assertProxyRequestCount(1);
-    }
-    
-    class MyHttpsTrustDecider extends MessageTrustDecider {
-        
-        private String[] trustName;
-        private int      called;
-        
-        MyHttpsTrustDecider(String name) {
-            trustName = new String[] {name};
-        }
-        
-        MyHttpsTrustDecider(String[] name) {
-            trustName = name;
-        }
-        
-        public int wasCalled() {
-            return called;
-        }
-        
-        public void establishTrust(
-            String            conduitName,
-            URLConnectionInfo cinfo,
-            Message           message
-        ) throws UntrustedURLConnectionIOException {
-        
-            called++;
-
-            HttpsURLConnectionInfo ci = (HttpsURLConnectionInfo) cinfo;
-            boolean trusted = false;
-            for (int i = 0; i < trustName.length; i++) {
-                trusted = trusted 
-                         || ci.getPeerPrincipal()
-                                 .toString().contains("OU=" + trustName[i]);
-            }
-            if (!trusted) {
-                throw new UntrustedURLConnectionIOException(
-                        "Peer Principal \"" 
-                        + ci.getPeerPrincipal() 
-                        + "\" does not contain " 
-                        + getTrustNames());
-            }
-        }
-        
-        private String getTrustNames() {
-            StringBuffer sb = new StringBuffer();
-            for (int i = 0; i < trustName.length; i++) {
-                sb.append("\"OU=");
-                sb.append(trustName[i]);
-                sb.append("\"");
-                if (i < trustName.length - 1) {
-                    sb.append(", ");
-                }
-            }
-            return sb.toString();
-        }
-    }
-    
-    @Test
-    public void testHttpsTrust() throws Exception {
-        startServer("Bethal");
-
-        URL wsdl = getClass().getResource("greeting.wsdl");
-        assertNotNull("WSDL is null", wsdl);
-
-        SOAPService service = new SOAPService(wsdl, serviceName);
-        assertNotNull("Service is null", service);
-
-        Greeter bethal = service.getPort(bethalQ, Greeter.class);
-        assertNotNull("Port is null", bethal);
-        updateAddressPort(bethal, getPort("PORT4"));
-        
-        // Okay, I'm sick of configuration files.
-        // This also tests dynamic configuration of the conduit.
-        Client client = ClientProxy.getClient(bethal);
-        HTTPConduit http = 
-            (HTTPConduit) client.getConduit();
-        
-        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
-        
-        httpClientPolicy.setAutoRedirect(false);
-        // If we set any name, but Edward, Mary, or George,
-        // and a password of "password" we will get through
-        // Bethal.
-        AuthorizationPolicy authPolicy = new AuthorizationPolicy();
-        authPolicy.setUserName("Betty");
-        authPolicy.setPassword("password");
-        
-        http.setClient(httpClientPolicy);
-        http.setTlsClientParameters(tlsClientParameters);
-        http.setAuthorization(authPolicy);
-        
-        // Our expected server should be OU=Bethal
-        http.setTrustDecider(new MyHttpsTrustDecider("Bethal"));
-        
-        configureProxy(client);
-        String answer = bethal.sayHi();
-        assertTrue("Unexpected answer: " + answer, 
-                "Bonjour from Bethal".equals(answer));
-        assertProxyRequestCount(0);
-        
-        
-        // Nobody will not equal OU=Bethal
-        MyHttpsTrustDecider trustDecider =
-                                 new MyHttpsTrustDecider("Nobody");
-        http.setTrustDecider(trustDecider);
-        try {
-            answer = bethal.sayHi();
-            fail("Unexpected answer from Bethal: " + answer);
-        } catch (Exception e) {
-            //e.printStackTrace();
-            //assertTrue("Trust Decider was not called", 
-            //              0 > trustDecider.wasCalled());
-        }
-        assertProxyRequestCount(0);
-    }
-
-    @Test
-    public void testHttpsTrustRedirect() throws Exception {
-        startServer("Tarpin");
-        startServer("Gordy");
-        startServer("Bethal");
-
-        URL wsdl = getClass().getResource("greeting.wsdl");
-        assertNotNull("WSDL is null", wsdl);
-
-        SOAPService service = new SOAPService(wsdl, serviceName);
-        assertNotNull("Service is null", service);
-
-        Greeter tarpin = service.getPort(tarpinQ, Greeter.class);
-        assertNotNull("Port is null", tarpin);
-        updateAddressPort(tarpin, getPort("PORT1"));
-        
-        // Okay, I'm sick of configuration files.
-        // This also tests dynamic configuration of the conduit.
-        Client client = ClientProxy.getClient(tarpin);
-        HTTPConduit http = 
-            (HTTPConduit) client.getConduit();
-        
-        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
-        
-        httpClientPolicy.setAutoRedirect(true);
-        // If we set any name, but Edward, Mary, or George,
-        // and a password of "password" we will get through
-        // Bethal.
-        AuthorizationPolicy authPolicy = new AuthorizationPolicy();
-        authPolicy.setUserName("Betty");
-        authPolicy.setPassword("password");
-        
-        http.setClient(httpClientPolicy);
-        http.setTlsClientParameters(tlsClientParameters);
-        http.setAuthorization(authPolicy);
-        
-        // We get redirected from Tarpin, to Gordy, to Bethal.
-        MyHttpsTrustDecider trustDecider =
-            new MyHttpsTrustDecider(
-                    new String[] {"Tarpin", "Gordy", "Bethal"});
-        http.setTrustDecider(trustDecider);
-        
-        // We actually get our answer from Bethal at the end of the
-        // redirects.
-        configureProxy(ClientProxy.getClient(tarpin));
-        String answer = tarpin.sayHi();
-        assertProxyRequestCount(0);
-        
-        assertTrue("Trust Decider wasn't called correctly", 
-                       3 == trustDecider.wasCalled());
-        assertTrue("Unexpected answer: " + answer, 
-                "Bonjour from Bethal".equals(answer));
-        
-        // Limit the redirects to 1, since there are two, this should fail.
-        http.getClient().setMaxRetransmits(1);
-
-        try {
-            answer = tarpin.sayHi();
-            fail("Unexpected answer from Tarpin: " + answer);
-        } catch (Exception e) {
-            //e.printStackTrace();
-        }
-        assertProxyRequestCount(0);
-        
-        // Set back to unlimited.
-        http.getClient().setMaxRetransmits(-1);
-        
-        // Effectively we will not trust Gordy in the middle.
-        trustDecider = 
-                new MyHttpsTrustDecider(
-                    new String[] {"Tarpin", "Bethal"});
-        http.setTrustDecider(trustDecider);
-        
-        try {
-            answer = tarpin.sayHi();
-            fail("Unexpected answer from Tarpin: " + answer);
-        } catch (Exception e) {
-            //e.printStackTrace();
-            assertTrue("Trust Decider wasn't called correctly",
-                     2 == trustDecider.wasCalled());
-        }
-        assertProxyRequestCount(0);
-    }
-
-    public class MyBasicAuthSupplier implements HttpAuthSupplier {
-
-        String realm;
-        String user;
-        String pass;
-        
-        /**
-         * This will loop from Cronus, to Andromeda, to Zorantius
-         */
-        MyBasicAuthSupplier() {
-        }
-        
-        MyBasicAuthSupplier(String r, String u, String p) {
-            realm = r;
-            user  = u;
-            pass  = p;
-        }
-
-        /**
-         * If we don't have the realm set, then we loop
-         * through the realms.
-         */
-        public String getAuthorization(
-                AuthorizationPolicy authPolicy,
-                URI     currentURI,
-                Message message,
-                String fullHeader
-        ) {
-            String reqestedRealm = new HttpAuthHeader(fullHeader).getRealm();
-            if (realm != null && realm.equals(reqestedRealm)) {
-                return createUserPass(user, pass);
-            }
-            if ("Andromeda".equals(reqestedRealm)) {
-                // This will get us another 401 to Zorantius
-                return createUserPass("Edward", "password");
-            }
-            if ("Zorantius".equals(reqestedRealm)) {
-                // George will get us another 401 to Cronus
-                return createUserPass("George", "password");
-            }
-            if ("Cronus".equals(reqestedRealm)) {
-                // Mary will get us another 401 to Andromeda
-                return createUserPass("Mary", "password");
-            }
-            return null;
-        }
-
-        private String createUserPass(String usr, String pwd) {
-            String userpass = usr + ":" + pwd;
-            String token = Base64Utility.encode(userpass.getBytes());
-            return "Basic " + token;
-        }
-
-        public boolean requiresRequestCaching() {
-            return false;
-        }
-
-    }
-
-    /**
-     * This tests redirects through Gordy to Bethal. Bethal will
-     * supply a series of 401s. See PushBack401.
-     */
-    @Test    
-    public void testHttpsRedirect401Response() throws Exception {
-        startServer("Gordy");
-        startServer("Bethal");
-
-        URL wsdl = getClass().getResource("greeting.wsdl");
-        assertNotNull("WSDL is null", wsdl);
-
-        SOAPService service = new SOAPService(wsdl, serviceName);
-        assertNotNull("Service is null", service);
-
-        Greeter gordy = service.getPort(gordyQ, Greeter.class);
-        assertNotNull("Port is null", gordy);
-        updateAddressPort(gordy, getPort("PORT3"));
-        
-        // Okay, I'm sick of configuration files.
-        // This also tests dynamic configuration of the conduit.
-        Client client = ClientProxy.getClient(gordy);
-        HTTPConduit http = 
-            (HTTPConduit) client.getConduit();
-        
-        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
-        
-        httpClientPolicy.setAutoRedirect(true);
-        http.setClient(httpClientPolicy);
-        http.setTlsClientParameters(tlsClientParameters);
-        
-        // We get redirected from Gordy, to Bethal.
-        http.setTrustDecider(
-                new MyHttpsTrustDecider(
-                        new String[] {"Gordy", "Bethal"}));
-        
-        // Without preemptive user/pass Bethal returns a
-        // 401 for realm Cronus. If we supply any name other
-        // than Edward, George, or Mary, with the pass of "password"
-        // we should succeed.
-        http.setAuthSupplier(
-                new MyBasicAuthSupplier("Cronus", "Betty", "password"));
-        
-        // We actually get our answer from Bethal at the end of the
-        // redirects.
-        String answer = gordy.sayHi();
-        assertTrue("Unexpected answer: " + answer, 
-                "Bonjour from Bethal".equals(answer));
-        
-        // The loop auth supplier, 
-        // We should die with looping realms.
-        http.setAuthSupplier(new MyBasicAuthSupplier());
-        
-        try {
-            answer = gordy.sayHi();
-            fail("Unexpected answer from Gordy: " + answer);
-        } catch (Exception e) {
-            //e.printStackTrace();
-        }
-    }
-    
-}
-

http://git-wip-us.apache.org/repos/asf/cxf/blob/5e97d1e2/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSProxyAuthConduitTest.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSProxyAuthConduitTest.java b/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSProxyAuthConduitTest.java
deleted file mode 100644
index 2750f21..0000000
--- a/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSProxyAuthConduitTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.systest.https;
-
-import java.util.HashMap;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.cxf.configuration.security.ProxyAuthorizationPolicy;
-import org.apache.cxf.endpoint.Client;
-import org.apache.cxf.transport.http.HTTPConduit;
-import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
-
-import org.jboss.netty.handler.codec.http.HttpRequest;
-
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-
-import org.littleshoot.proxy.DefaultHttpProxyServer;
-import org.littleshoot.proxy.HttpFilter;
-import org.littleshoot.proxy.HttpRequestFilter;
-import org.littleshoot.proxy.ProxyAuthorizationHandler;
-
-
-/**
- * 
- */
-public class HTTPSProxyAuthConduitTest extends HTTPSConduitTest {
-    static final int PROXY_PORT = Integer.parseInt(allocatePort(HTTPSProxyAuthConduitTest.class));
-    static DefaultHttpProxyServer proxy;
-    static CountingFilter requestFilter = new CountingFilter();
-    
-    static class CountingFilter implements HttpRequestFilter {
-        AtomicInteger count = new AtomicInteger();
-        public void filter(HttpRequest httpRequest) {
-            count.incrementAndGet();
-        }
-        
-        public void reset() {
-            count.set(0);
-        }
-        public int getCount() {
-            return count.get();
-        }
-    }
-    
-    public HTTPSProxyAuthConduitTest() {
-    }
-
-    
-    @AfterClass
-    public static void stopProxy() {
-        proxy.stop();
-        proxy = null;
-    }
-    
-    @BeforeClass
-    public static void startProxy() {
-        proxy = new DefaultHttpProxyServer(PROXY_PORT, requestFilter, new HashMap<String, HttpFilter>());
-        proxy.addProxyAuthenticationHandler(new ProxyAuthorizationHandler() {
-            public boolean authenticate(String userName, String password) {
-                return "password".equals(password) && "CXF".equals(userName);
-            }
-        });
-        proxy.start();
-    }
-    @Before
-    public void resetCount() {
-        requestFilter.reset();
-    }
-    
-    public void configureProxy(Client client) {
-        HTTPConduit cond = (HTTPConduit)client.getConduit();
-        HTTPClientPolicy pol = cond.getClient();
-        if (pol == null) {
-            pol = new HTTPClientPolicy();
-            cond.setClient(pol);
-        }
-        pol.setProxyServer("localhost");
-        pol.setProxyServerPort(PROXY_PORT);
-        ProxyAuthorizationPolicy auth = new ProxyAuthorizationPolicy();
-        auth.setUserName("CXF");
-        auth.setPassword("password");
-        cond.setProxyAuthorization(auth);
-    }
-    
-    public void resetProxyCount() {
-        requestFilter.reset();
-    }
-    public void assertProxyRequestCount(int i) {
-        assertEquals("Unexpected request count", i, requestFilter.getCount());
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/5e97d1e2/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSProxyConduitTest.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSProxyConduitTest.java b/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSProxyConduitTest.java
deleted file mode 100644
index 8171576..0000000
--- a/systests/transports/src/test/java/org/apache/cxf/systest/https/HTTPSProxyConduitTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.systest.https;
-
-import java.util.HashMap;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.cxf.endpoint.Client;
-import org.apache.cxf.transport.http.HTTPConduit;
-import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
-
-import org.jboss.netty.handler.codec.http.HttpRequest;
-
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-
-import org.littleshoot.proxy.DefaultHttpProxyServer;
-import org.littleshoot.proxy.HttpFilter;
-import org.littleshoot.proxy.HttpRequestFilter;
-
-
-/**
- * 
- */
-public class HTTPSProxyConduitTest extends HTTPSConduitTest {
-    static final int PROXY_PORT = Integer.parseInt(allocatePort(HTTPSProxyConduitTest.class));
-    static DefaultHttpProxyServer proxy;
-    static CountingFilter requestFilter = new CountingFilter();
-    
-    static class CountingFilter implements HttpRequestFilter {
-        AtomicInteger count = new AtomicInteger();
-        public void filter(HttpRequest httpRequest) {
-            count.incrementAndGet();
-        }
-        
-        public void reset() {
-            count.set(0);
-        }
-        public int getCount() {
-            return count.get();
-        }
-    }
-    
-    public HTTPSProxyConduitTest() {
-    }
-
-    
-    @AfterClass
-    public static void stopProxy() {
-        proxy.stop();
-        proxy = null;
-    }
-    
-    @BeforeClass
-    public static void startProxy() {
-        proxy = new DefaultHttpProxyServer(PROXY_PORT, requestFilter, new HashMap<String, HttpFilter>());
-        proxy.start();
-    }
-    @Before
-    public void resetCount() {
-        requestFilter.reset();
-    }
-    
-    public void configureProxy(Client client) {
-        HTTPConduit cond = (HTTPConduit)client.getConduit();
-        HTTPClientPolicy pol = cond.getClient();
-        if (pol == null) {
-            pol = new HTTPClientPolicy();
-            cond.setClient(pol);
-        }
-        pol.setProxyServer("localhost");
-        pol.setProxyServerPort(PROXY_PORT);
-    }
-    
-    public void resetProxyCount() {
-        requestFilter.reset();
-    }
-    public void assertProxyRequestCount(int i) {
-        assertEquals("Unexpected request count", i, requestFilter.getCount());
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/5e97d1e2/systests/transports/src/test/java/org/apache/cxf/systest/https/KeyPasswordCallbackHandler.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/https/KeyPasswordCallbackHandler.java b/systests/transports/src/test/java/org/apache/cxf/systest/https/KeyPasswordCallbackHandler.java
deleted file mode 100644
index 6af2961..0000000
--- a/systests/transports/src/test/java/org/apache/cxf/systest/https/KeyPasswordCallbackHandler.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.systest.https;
-
-import java.io.IOException;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-public class KeyPasswordCallbackHandler implements CallbackHandler {
-
-    @Override
-    public void handle(Callback[] callbacks) throws IOException,
-        UnsupportedCallbackException {
-        for (int i = 0; i < callbacks.length; i++) {
-            PasswordCallback pc = (PasswordCallback)callbacks[i];
-            pc.setPassword("password".toCharArray());
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/5e97d1e2/systests/transports/src/test/java/org/apache/cxf/systest/https/PushBack401.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/https/PushBack401.java b/systests/transports/src/test/java/org/apache/cxf/systest/https/PushBack401.java
deleted file mode 100644
index d0fcac9..0000000
--- a/systests/transports/src/test/java/org/apache/cxf/systest/https/PushBack401.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.systest.https;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.cxf.common.util.Base64Utility;
-import org.apache.cxf.endpoint.Endpoint;
-import org.apache.cxf.helpers.IOUtils;
-import org.apache.cxf.interceptor.Fault;
-import org.apache.cxf.message.Exchange;
-import org.apache.cxf.message.Message;
-import org.apache.cxf.message.MessageImpl;
-import org.apache.cxf.phase.AbstractPhaseInterceptor;
-import org.apache.cxf.phase.Phase;
-import org.apache.cxf.transport.Conduit;
-import org.apache.cxf.transport.http.Headers;
-
-/*
- * This interceptor will issue 401s
- *    No Authorization Header  --> 401 Realm=Cronus
- *    Username Mary            --> 401 Realm=Andromeda
- *    Username Edward          --> 401 Realm=Zorantius
- *    Username George          --> 401 Realm=Cronus
- *    If the password is not "password" a 401 is issued without 
- *    realm.
- */
-public class PushBack401 extends AbstractPhaseInterceptor<Message> {
-    
-    PushBack401() {
-        super(Phase.RECEIVE);
-    }
-    
-    /**
-     * This function extracts the user:pass token from 
-     * the Authorization:Basic header. It returns a two element
-     * String array, the first being the userid, the second
-     * being the password. It returns null, if it cannot parse.
-     */
-    private String[] extractUserPass(String token) {
-        try {
-            byte[] userpass = Base64Utility.decode(token);
-            String up = IOUtils.newStringFromBytes(userpass);
-            String user = up.substring(0, up.indexOf(':'));
-            String pass = up.substring(up.indexOf(':') + 1);
-            return new String[] {user, pass};
-        } catch (Exception e) {
-            return null;
-        }
-        
-    }
-    
-    /**
-     * This function returns the realm which depends on 
-     * the user name, as follows:
-     * <pre>
-     *    Username Mary            --> Andromeda
-     *    Username Edward          --> Zorantius
-     *    Username George          --> Cronus
-     * </pre>
-     * However, if the password is not "password" this function 
-     * throws an exception, regardless.
-     */
-    private String checkUserPass(
-        String user,
-        String pass
-    ) throws Exception {
-        //System.out.println("Got user: " + user + " pass: " + pass);
-        if (!"password".equals(pass)) {
-            throw new Exception("bad password");
-        }
-        if ("Mary".equals(user)) {
-            return "Andromeda";
-        }
-        if ("Edward".equals(user)) {
-            return "Zorantius";
-        }
-        if ("George".equals(user)) {
-            return "Cronus";
-        }
-        return null;
-    }
-    
-    @SuppressWarnings("unchecked")
-    public void handleMessage(Message message) throws Fault {
-        
-        Map<String, List<String>> headers =
-            (Map<String, List<String>>) 
-                message.get(Message.PROTOCOL_HEADERS);
-        
-        List<String> auth = headers.get("Authorization");
-        if (auth == null) {
-            // No Auth Header, respond with 401 Realm=Cronus
-            replyUnauthorized(message, "Cronus");
-            return;
-        } else {
-            for (String a : auth) {
-                if (a.startsWith("Basic ")) {
-                    String[] userpass = 
-                        extractUserPass(a.substring("Basic ".length()));
-                    if (userpass != null) {
-                        try {
-                            String realm = 
-                                checkUserPass(userpass[0], userpass[1]);
-                            if (realm != null) {
-                                replyUnauthorized(message, realm);
-                                return;
-                            } else {
-                                // Password is good and no realm
-                                // We just return for successful fall thru.
-                                return;
-                            }
-                        } catch (Exception e) {
-                            // Bad Password
-                            replyUnauthorized(message, null);
-                            return;
-                        }
-                    }
-                }
-            }
-            // No Authorization: Basic
-            replyUnauthorized(message, null);
-            return;
-        }
-    }
-    
-    /**
-     * This function issues a 401 response back down the conduit.
-     * If the realm is not null, a WWW-Authenticate: Basic realm=
-     * header is sent. The interceptor chain is aborted stopping
-     * the Message from going to the servant.
-     */
-    private void replyUnauthorized(Message message, String realm) {
-        Message outMessage = getOutMessage(message);
-        outMessage.put(Message.RESPONSE_CODE, 
-                HttpURLConnection.HTTP_UNAUTHORIZED);
-        
-        if (realm != null) {
-            setHeader(outMessage, 
-                      "WWW-Authenticate", "Basic realm=" + realm);
-        }
-        message.getInterceptorChain().abort();
-        try {
-            getConduit(message).prepare(outMessage);
-            close(outMessage);
-        } catch (IOException e) {
-            //System.out.println("Prepare of message not working." + e);
-            e.printStackTrace();
-        }
-    }
-    
-    /**
-     * Retrieves/creates the corresponding Outbound Message.
-     */
-    private Message getOutMessage(Message message) {
-        Exchange exchange = message.getExchange();
-        Message outMessage = exchange.getOutMessage();
-        if (outMessage == null) {
-            Endpoint endpoint = exchange.get(Endpoint.class);
-            outMessage = new MessageImpl();
-            outMessage.putAll(message);
-            outMessage.remove(Message.PROTOCOL_HEADERS);
-            outMessage.setExchange(exchange);
-            outMessage = endpoint.getBinding().createMessage(outMessage);
-            exchange.setOutMessage(outMessage);
-        }
-        return outMessage;
-    }
-    
-    /**
-     * This function sets the header in the PROTOCO_HEADERS of
-     * the message.
-     */
-    private void setHeader(Message message, String key, String value) {
-        Map<String, List<String>> responseHeaders = Headers.getSetProtocolHeaders(message);
-        responseHeaders.put(key, Arrays.asList(new String[] {value}));
-    }
-    
-    /**
-     * This method retrieves/creates the conduit for the response
-     * message.
-     */
-    private Conduit getConduit(Message message) throws IOException {
-        Exchange exchange = message.getExchange();
-        Conduit conduit =
-            exchange.getDestination().getBackChannel(message);
-        exchange.setConduit(conduit);
-        return conduit;
-    }
-    
-    /**
-     * This method closes the output stream associated with the
-     * message.
-     */
-    private void close(Message message) throws IOException {
-        OutputStream os = message.getContent(OutputStream.class);
-        os.flush();
-        os.close();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/5e97d1e2/systests/transports/src/test/java/org/apache/cxf/systest/https/SSLv3Server.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/https/SSLv3Server.java b/systests/transports/src/test/java/org/apache/cxf/systest/https/SSLv3Server.java
deleted file mode 100644
index 7832212..0000000
--- a/systests/transports/src/test/java/org/apache/cxf/systest/https/SSLv3Server.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.systest.https;
-
-import java.net.URL;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.bus.spring.SpringBusFactory;
-import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
-
-public class SSLv3Server extends AbstractBusTestServerBase {
-
-    public SSLv3Server() {
-
-    }
-
-    protected void run()  {
-        URL busFile = Server.class.getResource("sslv3-server.xml");
-        Bus busLocal = new SpringBusFactory().createBus(busFile);
-        BusFactory.setDefaultBus(busLocal);
-        setBus(busLocal);
-
-        try {
-            new SSLv3Server();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-}