You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2019/05/24 08:01:26 UTC

[camel] 02/02: Revert "CAMEL-13563 - Update Jetty to 9.4.18 + fix client authentication issues"

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit b84754a635a8e878bf44e7b24ea359592975e060
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri May 24 10:00:41 2019 +0200

    Revert "CAMEL-13563 - Update Jetty to 9.4.18 + fix client authentication issues"
    
    This reverts commit 4cfedb0dbc66168e7ac8ac357c021d8b9ecc3362.
    
    Upgrading Jetty breaks cometd Karaf feature, which in turns breaks Saleforce Karaf feature
---
 .../camel/component/cometd/CometdComponent.java    |  27 +++--
 .../camel/component/jetty/JettyHttpComponent.java  |  12 +-
 .../component/jetty/HttpBridgeEncodedPathTest.java |   3 +-
 .../jetty/rest/RestHttpsClientAuthRouteTest.java   | 133 ---------------------
 .../camel-jetty/src/test/resources/service.jks     | Bin 1969 -> 0 bytes
 .../camel-jetty/src/test/resources/truststore.jks  | Bin 582 -> 0 bytes
 .../rest/swagger/Jetty94ServerFactory.java         |   2 +-
 .../component/salesforce/SalesforceComponent.java  |   4 +-
 .../salesforce/BulkApiIntegrationTest.java         |   2 +-
 .../salesforce/RestApiIntegrationTest.java         |   4 +-
 .../internal/SessionIntegrationTest.java           |   2 +-
 .../apache/camel/maven/AbstractSalesforceMojo.java |   2 +-
 .../component/websocket/WebsocketComponent.java    |  12 +-
 .../WebsocketSSLContextGlobalRouteExampleTest.java |  25 ++--
 .../WebsocketSSLContextInUriRouteExampleTest.java  |  25 ++--
 .../websocket/WebsocketSSLRouteExampleTest.java    |  24 ++--
 parent/pom.xml                                     |   2 +-
 17 files changed, 80 insertions(+), 199 deletions(-)

diff --git a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
index b22bbcd..c48986d 100644
--- a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
+++ b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
@@ -22,6 +22,7 @@ import java.util.EnumSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import javax.net.ssl.SSLContext;
 import javax.servlet.DispatcherType;
 
 import org.apache.camel.Endpoint;
@@ -130,7 +131,7 @@ public class CometdComponent extends DefaultComponent implements SSLContextParam
                     LOG.warn("You use localhost interface! It means that no external connections will be available."
                             + " Don't you want to use 0.0.0.0 instead (all network interfaces)?");
                 }
-
+                
                 server.addConnector(connector);
 
                 CometDServlet servlet = createServletForConnector(server, connector, endpoint);
@@ -231,18 +232,20 @@ public class CometdComponent extends DefaultComponent implements SSLContextParam
         if (sslParams == null) {
             sslParams = retrieveGlobalSslContextParameters();
         }
-
-        SslContextFactory sslContextFactory = new SslContextFactory.Server();
         if (sslParams != null) {
+            SslContextFactory sslContextFactory = new CometdComponentSslContextFactory();
             sslContextFactory.setSslContext(sslParams.createSSLContext(getCamelContext()));
+            sslSocketConnector = new ServerConnector(server, sslContextFactory);
         } else {
+            SslContextFactory sslContextFactory = new SslContextFactory();
             sslContextFactory.setKeyStorePassword(sslKeyPassword);
             sslContextFactory.setKeyManagerPassword(sslPassword);
             if (sslKeystore != null) {
                 sslContextFactory.setKeyStorePath(sslKeystore);
             }
+            sslSocketConnector = new ServerConnector(server, sslContextFactory);
+
         }
-        sslSocketConnector = new ServerConnector(server, sslContextFactory);
         return sslSocketConnector;
     }
 
@@ -307,14 +310,14 @@ public class CometdComponent extends DefaultComponent implements SSLContextParam
         }
         extensions.add(extension);
     }
-
+    
     public void addServerListener(BayeuxServer.BayeuxServerListener serverListener) {
         if (serverListeners == null) {
             serverListeners = new ArrayList<>();
         }
         serverListeners.add(serverListener);
     }
-
+    
     public SSLContextParameters getSslContextParameters() {
         return sslContextParameters;
     }
@@ -352,7 +355,7 @@ public class CometdComponent extends DefaultComponent implements SSLContextParam
             connectorRef.connector.stop();
         }
         connectors.clear();
-
+       
         super.doStop();
     }
 
@@ -371,4 +374,14 @@ public class CometdComponent extends DefaultComponent implements SSLContextParam
         }
     }
 
+    /**
+     * Override the key/trust store check method as it does not account for a factory that has
+     * a pre-configured {@link SSLContext}.
+     */
+    private static final class CometdComponentSslContextFactory extends SslContextFactory {
+        // to support jetty 9.2.
+        // TODO: remove this class when we have upgraded to jetty 9.3
+        public void checkKeyStore() {
+        }
+    }
 }
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
index 0891248..e4b7920 100644
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
+++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
@@ -621,12 +621,12 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
 
         if (endpointSslContextParameters != null) {
             try {
-                sslcf = createSslContextFactory(endpointSslContextParameters, false);
+                sslcf = createSslContextFactory(endpointSslContextParameters);
             } catch (Exception e) {
                 throw new RuntimeCamelException(e);
             }
         } else if ("https".equals(endpoint.getProtocol())) {
-            sslcf = new SslContextFactory.Server();
+            sslcf = new SslContextFactory();
             String keystoreProperty = System.getProperty(JETTY_SSL_KEYSTORE);
             if (keystoreProperty != null) {
                 sslcf.setKeyStorePath(keystoreProperty);
@@ -654,8 +654,8 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
 
     protected abstract AbstractConnector createConnectorJettyInternal(Server server, JettyHttpEndpoint endpoint, SslContextFactory sslcf);
 
-    private SslContextFactory createSslContextFactory(SSLContextParameters ssl, boolean client) throws GeneralSecurityException, IOException {
-        SslContextFactory answer = client ? new SslContextFactory.Client() : new SslContextFactory.Server();
+    private SslContextFactory createSslContextFactory(SSLContextParameters ssl) throws GeneralSecurityException, IOException {
+        SslContextFactory answer = new SslContextFactory();
         if (ssl != null) {
             answer.setSslContext(ssl.createSSLContext(getCamelContext()));
         }
@@ -743,7 +743,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
      * @param ssl        option SSL parameters
      */
     public CamelHttpClient createHttpClient(JettyHttpEndpoint endpoint, Integer minThreads, Integer maxThreads, SSLContextParameters ssl) throws Exception {
-        SslContextFactory sslContextFactory = createSslContextFactory(ssl, true);
+        SslContextFactory sslContextFactory = createSslContextFactory(ssl);
         HttpClientTransport transport = createHttpClientTransport(maxThreads);
         CamelHttpClient httpClient = createCamelHttpClient(transport, sslContextFactory);
 
@@ -1426,7 +1426,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         if (getErrorHandler() != null) {
             s.addBean(getErrorHandler());
         } else if (!Server.getVersion().startsWith("8")) {
-            //need an error handler that won't leak information about the exception
+            //need an error handler that won't leak information about the exception 
             //back to the client.
             ErrorHandler eh = new ErrorHandler() {
                 public void handle(String target, Request baseRequest,
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBridgeEncodedPathTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBridgeEncodedPathTest.java
index 88ad543..806d749 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBridgeEncodedPathTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBridgeEncodedPathTest.java
@@ -42,7 +42,6 @@ public class HttpBridgeEncodedPathTest extends BaseJettyTest {
     }
 
     @Test
-    @org.junit.Ignore("This test fails with a httpclient upgrade")
     public void testEncodedPath() throws Exception {
         String path = URLEncoder.encode(" :/?#[]@!$", "UTF-8") + "/" + URLEncoder.encode("&'()+,;=", "UTF-8");
         MockEndpoint mock = getMockEndpoint("mock:encodedPath");
@@ -90,6 +89,6 @@ public class HttpBridgeEncodedPathTest extends BaseJettyTest {
                 from("jetty:http://localhost:" + port3 + "?matchOnUriPrefix=true").to("mock:encodedPath");
             }
         };
-    }
+    }    
 
 }
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestHttpsClientAuthRouteTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestHttpsClientAuthRouteTest.java
deleted file mode 100644
index 5d698ed..0000000
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestHttpsClientAuthRouteTest.java
+++ /dev/null
@@ -1,133 +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.camel.component.jetty.rest;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.Produce;
-import org.apache.camel.ProducerTemplate;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.model.rest.RestConfigurationDefinition;
-import org.apache.camel.support.jsse.KeyManagersParameters;
-import org.apache.camel.support.jsse.KeyStoreParameters;
-import org.apache.camel.support.jsse.SSLContextParameters;
-import org.apache.camel.support.jsse.SSLContextServerParameters;
-import org.apache.camel.support.jsse.TrustManagersParameters;
-import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
-
-public class RestHttpsClientAuthRouteTest extends CamelTestSupport {
-    static int port = AvailablePortFinder.getNextAvailable();
-
-    @Produce("direct:start")
-    protected ProducerTemplate sender;
-
-
-    @Test
-    public void testGETClientRoute() throws Exception {
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedMinimumMessageCount(1);
-        mock.expectedBodiesReceived("Hello some-id");
-        sender.sendBody(null);
-        assertMockEndpointsSatisfied();
-    }
-
-    protected String getClientURI() {
-        return "http4://localhost:%d/TestResource/some-id?sslContextParameters=#clientSSLContextParameters";
-    }
-
-    protected void decorateRestConfiguration(RestConfigurationDefinition restConfig) {
-        KeyStoreParameters keystoreParameters = new KeyStoreParameters();
-        keystoreParameters.setResource("service.jks");
-        keystoreParameters.setPassword("security");
-
-        SSLContextParameters serviceSSLContextParameters = new SSLContextParameters();
-        KeyManagersParameters serviceSSLKeyManagers = new KeyManagersParameters();
-        serviceSSLKeyManagers.setKeyPassword("security");
-        serviceSSLKeyManagers.setKeyStore(keystoreParameters);
-        serviceSSLContextParameters.setKeyManagers(serviceSSLKeyManagers);
-
-        KeyStoreParameters truststoreParameters = new KeyStoreParameters();
-        truststoreParameters.setResource("truststore.jks");
-        truststoreParameters.setPassword("storepass");
-
-        TrustManagersParameters clientAuthServiceSSLTrustManagers = new TrustManagersParameters();
-        clientAuthServiceSSLTrustManagers.setKeyStore(truststoreParameters);
-        serviceSSLContextParameters.setTrustManagers(clientAuthServiceSSLTrustManagers);
-        SSLContextServerParameters clientAuthSSLContextServerParameters = new SSLContextServerParameters();
-        clientAuthSSLContextServerParameters.setClientAuthentication("REQUIRE");
-        serviceSSLContextParameters.setServerParameters(clientAuthSSLContextServerParameters);
-
-        SSLContextParameters clientSSLContextParameters = new SSLContextParameters();
-        TrustManagersParameters clientSSLTrustManagers = new TrustManagersParameters();
-        clientSSLTrustManagers.setKeyStore(truststoreParameters);
-        clientSSLContextParameters.setTrustManagers(clientSSLTrustManagers);
-
-        KeyManagersParameters clientAuthClientSSLKeyManagers = new KeyManagersParameters();
-        clientAuthClientSSLKeyManagers.setKeyPassword("security");
-        clientAuthClientSSLKeyManagers.setKeyStore(keystoreParameters);
-        clientSSLContextParameters.setKeyManagers(clientAuthClientSSLKeyManagers);
-
-        context.getRegistry().bind("serviceSSLContextParameters", serviceSSLContextParameters);
-        context.getRegistry().bind("clientSSLContextParameters", clientSSLContextParameters);
-
-        restConfig.endpointProperty("sslContextParameters", "#serviceSSLContextParameters");
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                RestConfigurationDefinition restConfig =
-                    restConfiguration("jetty").scheme("https").host("localhost").port(port);
-                decorateRestConfiguration(restConfig);
-
-                rest("/TestParams")
-                    .get().to("direct:get1")
-                    .post().to("direct:post1");
-
-                rest("/TestResource")
-                    .get("/{id}").to("direct:get1")
-                    .post("/{id}").to("direct:post1");
-
-                from("direct:get1").process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        String id = exchange.getIn().getHeader("id", String.class);
-                        exchange.getOut().setBody("Hello " + id);
-                    }
-                });
-
-                from("direct:post1").process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        String id = exchange.getIn().getHeader("id", String.class);
-                        String ct = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, String.class);
-                        exchange.getOut().setBody("Hello " + id + ": " + exchange.getIn().getBody(String.class));
-                        exchange.getOut().setHeader(Exchange.CONTENT_TYPE, ct);
-                    }
-                });
-
-                from("direct:start")
-                    .toF(getClientURI(), port)
-                    .to("mock:result");
-            }
-        };
-    }
-
-}
diff --git a/components/camel-jetty/src/test/resources/service.jks b/components/camel-jetty/src/test/resources/service.jks
deleted file mode 100644
index 52321ad..0000000
Binary files a/components/camel-jetty/src/test/resources/service.jks and /dev/null differ
diff --git a/components/camel-jetty/src/test/resources/truststore.jks b/components/camel-jetty/src/test/resources/truststore.jks
deleted file mode 100644
index 44d82a85..0000000
Binary files a/components/camel-jetty/src/test/resources/truststore.jks and /dev/null differ
diff --git a/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/Jetty94ServerFactory.java b/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/Jetty94ServerFactory.java
index c7664b0..cd0fd77 100644
--- a/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/Jetty94ServerFactory.java
+++ b/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/Jetty94ServerFactory.java
@@ -47,7 +47,7 @@ public final class Jetty94ServerFactory extends JettyHttpServerFactory {
             @Override
             protected ServerConnector createHttpsConnector(final String bindAddress, final HttpsSettings httpsSettings,
                 final JettySettings jettySettings, final NetworkTrafficListener listener) {
-                final SslContextFactory sslContextFactory = new SslContextFactory.Server();
+                final SslContextFactory sslContextFactory = new SslContextFactory();
 
                 sslContextFactory.setKeyStorePath(httpsSettings.keyStorePath());
                 sslContextFactory.setKeyManagerPassword(httpsSettings.keyStorePassword());
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
index c28359d..cd0d9f0 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
@@ -329,7 +329,7 @@ public class SalesforceComponent extends DefaultComponent implements SSLContextP
                 .orElseGet(() -> Optional.ofNullable(retrieveGlobalSslContextParameters())
                 .orElseGet(() -> new SSLContextParameters()));
 
-            final SslContextFactory sslContextFactory = new SslContextFactory.Client();
+            final SslContextFactory sslContextFactory = new SslContextFactory();
             sslContextFactory.setSslContext(contextParameters.createSSLContext(getCamelContext()));
 
             httpClient = createHttpClient(sslContextFactory);
@@ -692,7 +692,7 @@ public class SalesforceComponent extends DefaultComponent implements SSLContextP
         // let's work with a copy for IntrospectionSupport so original properties are intact
         IntrospectionSupport.setProperties(typeConverter, sslContextParameters, new HashMap<>(properties));
 
-        final SslContextFactory sslContextFactory = new SslContextFactory.Client();
+        final SslContextFactory sslContextFactory = new SslContextFactory();
         sslContextFactory.setSslContext(sslContextParameters.createSSLContext(camelContext));
 
         final SalesforceHttpClient httpClient = createHttpClient(sslContextFactory);
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java
index 5f8b84c..5144994 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java
@@ -40,7 +40,7 @@ public class BulkApiIntegrationTest extends AbstractBulkApiTestBase {
         final SalesforceComponent sf = context().getComponent("salesforce", SalesforceComponent.class);
         final String accessToken = sf.getSession().getAccessToken();
 
-        final SslContextFactory sslContextFactory = new SslContextFactory.Client();
+        final SslContextFactory sslContextFactory = new SslContextFactory();
         sslContextFactory.setSslContext(new SSLContextParameters().createSSLContext(context));
         final HttpClient httpClient = new HttpClient(sslContextFactory);
         httpClient.setConnectTimeout(60000);
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
index 199a7f4..6958e96 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
@@ -349,7 +349,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
         final SalesforceComponent sf = context().getComponent("salesforce", SalesforceComponent.class);
         final String accessToken = sf.getSession().getAccessToken();
 
-        final SslContextFactory sslContextFactory = new SslContextFactory.Client();
+        final SslContextFactory sslContextFactory = new SslContextFactory();
         sslContextFactory.setSslContext(new SSLContextParameters().createSSLContext(context));
         final HttpClient httpClient = new HttpClient(sslContextFactory);
         httpClient.setConnectTimeout(60000);
@@ -369,7 +369,7 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
         final SalesforceComponent sf = context().getComponent("salesforce", SalesforceComponent.class);
         final String accessToken = sf.getSession().getAccessToken();
 
-        final SslContextFactory sslContextFactory = new SslContextFactory.Client();
+        final SslContextFactory sslContextFactory = new SslContextFactory();
         sslContextFactory.setSslContext(new SSLContextParameters().createSSLContext(context));
         final HttpClient httpClient = new HttpClient(sslContextFactory);
         httpClient.setConnectTimeout(60000);
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java
index e651f03..3db4820 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java
@@ -39,7 +39,7 @@ public class SessionIntegrationTest extends Assert implements SalesforceSession.
     @Test
     public void testLogin() throws Exception {
 
-        final SslContextFactory sslContextFactory = new SslContextFactory.Client();
+        final SslContextFactory sslContextFactory = new SslContextFactory();
         sslContextFactory.setSslContext(new SSLContextParameters().createSSLContext(new DefaultCamelContext()));
         final SalesforceHttpClient httpClient = new SalesforceHttpClient(sslContextFactory);
         httpClient.setConnectTimeout(TIMEOUT);
diff --git a/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/AbstractSalesforceMojo.java b/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/AbstractSalesforceMojo.java
index 781c36b..c12eaa9 100644
--- a/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/AbstractSalesforceMojo.java
+++ b/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/AbstractSalesforceMojo.java
@@ -224,7 +224,7 @@ abstract class AbstractSalesforceMojo extends AbstractMojo {
 
         // set ssl context parameters
         try {
-            final SslContextFactory sslContextFactory = new SslContextFactory.Client();
+            final SslContextFactory sslContextFactory = new SslContextFactory();
             sslContextFactory.setSslContext(sslContextParameters.createSSLContext(new DefaultCamelContext()));
 
             httpClient = new SalesforceHttpClient(sslContextFactory);
diff --git a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java
index 79f232d..a4b673b 100644
--- a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java
+++ b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java
@@ -178,7 +178,7 @@ public class WebsocketComponent extends DefaultComponent implements SSLContextPa
 
                 // Create ServletContextHandler
                 ServletContextHandler context = createContext(server, connector, endpoint.getHandlers());
-                // setup the WebSocketComponentServlet initial parameters
+                // setup the WebSocketComponentServlet initial parameters 
                 setWebSocketComponentServletInitialParameter(context, endpoint);
                 server.setHandler(context);
 
@@ -191,7 +191,7 @@ public class WebsocketComponent extends DefaultComponent implements SSLContextPa
                 }
 
                 MemoryWebsocketStore memoryStore = new MemoryWebsocketStore();
-
+                
                 // Don't provide a Servlet object as Producer/Consumer will create them later on
                 connectorRef = new ConnectorRef(server, connector, null, memoryStore);
 
@@ -228,7 +228,7 @@ public class WebsocketComponent extends DefaultComponent implements SSLContextPa
                 WebsocketProducer producer = WebsocketProducer.class.cast(prodcon);
                 producer.setStore(connectorRef.memoryStore);
             }
-
+            
         }
     }
 
@@ -324,7 +324,7 @@ public class WebsocketComponent extends DefaultComponent implements SSLContextPa
         setProperties(endpoint, parameters);
         return endpoint;
     }
-
+    
     protected void setWebSocketComponentServletInitialParameter(ServletContextHandler context, WebsocketEndpoint endpoint) {
         if (endpoint.getBufferSize() != null) {
             context.setInitParameter("bufferSize", endpoint.getBufferSize().toString());
@@ -502,7 +502,7 @@ public class WebsocketComponent extends DefaultComponent implements SSLContextPa
             sslContextFactory.setSslContext(sslContextParameters.createSSLContext(getCamelContext()));
             sslSocketConnector = new ServerConnector(server, sslContextFactory);
         } else {
-            SslContextFactory sslContextFactory = new SslContextFactory.Server();
+            SslContextFactory sslContextFactory = new SslContextFactory();
             sslContextFactory.setKeyStorePassword(sslKeyPassword);
             sslContextFactory.setKeyManagerPassword(sslPassword);
             if (sslKeystore != null) {
@@ -518,7 +518,7 @@ public class WebsocketComponent extends DefaultComponent implements SSLContextPa
      * Override the key/trust store check method as it does not account for a factory that has
      * a pre-configured {@link javax.net.ssl.SSLContext}.
      */
-    private static final class WebSocketComponentSslContextFactory extends SslContextFactory.Server {
+    private static final class WebSocketComponentSslContextFactory extends SslContextFactory {
         // This method is for Jetty 7.0.x ~ 7.4.x
         @SuppressWarnings("unused")
         public boolean checkConfig() {
diff --git a/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java b/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java
index da24a15..8dd9846 100644
--- a/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java
+++ b/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java
@@ -17,9 +17,11 @@
 package org.apache.camel.component.websocket;
 
 import java.io.IOException;
+import java.net.URL;
 import java.security.GeneralSecurityException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Properties;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
@@ -49,8 +51,10 @@ import org.junit.Test;
 
 public class WebsocketSSLContextGlobalRouteExampleTest extends CamelTestSupport {
 
+    private static final String NULL_VALUE_MARKER = CamelTestSupport.class.getCanonicalName();
     private static List<String> received = new ArrayList<>();
     private static CountDownLatch latch = new CountDownLatch(10);
+    private Properties originalValues = new Properties();
     private String pwd = "changeit";
     private String uri;
     private String server = "127.0.0.1";
@@ -61,6 +65,8 @@ public class WebsocketSSLContextGlobalRouteExampleTest extends CamelTestSupport
     public void setUp() throws Exception {
         port = AvailablePortFinder.getNextAvailable(16300);
 
+        URL trustStoreUrl = this.getClass().getClassLoader().getResource("jsse/localhost.ks");
+        setSystemProp("javax.net.ssl.trustStore", trustStoreUrl.toURI().getPath());
         uri = "websocket://" + server + ":" + port + "/test";
 
         super.setUp();
@@ -94,6 +100,11 @@ public class WebsocketSSLContextGlobalRouteExampleTest extends CamelTestSupport
         return context;
     }
 
+    protected void setSystemProp(String key, String value) {
+        String originalValue = System.setProperty(key, value);
+        originalValues.put(key, originalValue != null ? originalValue : NULL_VALUE_MARKER);
+    }
+
     protected AsyncHttpClient createAsyncHttpSSLClient() throws IOException, GeneralSecurityException {
 
         AsyncHttpClient c;
@@ -102,17 +113,7 @@ public class WebsocketSSLContextGlobalRouteExampleTest extends CamelTestSupport
         DefaultAsyncHttpClientConfig.Builder builder =
                 new DefaultAsyncHttpClientConfig.Builder();
 
-        SSLContextParameters sslContextParameters = new SSLContextParameters();
-
-        KeyStoreParameters truststoreParameters = new KeyStoreParameters();
-        truststoreParameters.setResource("jsse/localhost.ks");
-        truststoreParameters.setPassword(pwd);
-
-        TrustManagersParameters clientSSLTrustManagers = new TrustManagersParameters();
-        clientSSLTrustManagers.setKeyStore(truststoreParameters);
-        sslContextParameters.setTrustManagers(clientSSLTrustManagers);
-
-        SSLContext sslContext = sslContextParameters.createSSLContext(context());
+        SSLContext sslContext = new SSLContextParameters().createSSLContext(context());
         JdkSslContext ssl = new JdkSslContext(sslContext, true, ClientAuth.REQUIRE);
         builder.setSslContext(ssl);
         builder.setAcceptAnyCertificate(true);
@@ -136,7 +137,7 @@ public class WebsocketSSLContextGlobalRouteExampleTest extends CamelTestSupport
                                 latch.countDown();
                             }
 
-
+                            
 
                             @Override
                             public void onOpen(WebSocket websocket) {
diff --git a/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextInUriRouteExampleTest.java b/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextInUriRouteExampleTest.java
index 1e1e6ed..b8d8af6 100644
--- a/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextInUriRouteExampleTest.java
+++ b/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextInUriRouteExampleTest.java
@@ -17,9 +17,11 @@
 package org.apache.camel.component.websocket;
 
 import java.io.IOException;
+import java.net.URL;
 import java.security.GeneralSecurityException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Properties;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
@@ -48,8 +50,10 @@ import org.junit.Test;
 
 public class WebsocketSSLContextInUriRouteExampleTest extends CamelTestSupport {
 
+    private static final String NULL_VALUE_MARKER = CamelTestSupport.class.getCanonicalName();
     private static List<String> received = new ArrayList<>();
     private static CountDownLatch latch = new CountDownLatch(10);
+    private Properties originalValues = new Properties();
     private String pwd = "changeit";
     private String uri;
     private String server = "127.0.0.1";
@@ -60,6 +64,8 @@ public class WebsocketSSLContextInUriRouteExampleTest extends CamelTestSupport {
     public void setUp() throws Exception {
         port = AvailablePortFinder.getNextAvailable(16300);
 
+        URL trustStoreUrl = this.getClass().getClassLoader().getResource("jsse/localhost.ks");
+        setSystemProp("javax.net.ssl.trustStore", trustStoreUrl.toURI().getPath());
         uri = "websocket://" + server + ":" + port + "/test?sslContextParameters=#sslContextParameters";
 
         super.setUp();
@@ -92,6 +98,11 @@ public class WebsocketSSLContextInUriRouteExampleTest extends CamelTestSupport {
         return registry;
     }
 
+    protected void setSystemProp(String key, String value) {
+        String originalValue = System.setProperty(key, value);
+        originalValues.put(key, originalValue != null ? originalValue : NULL_VALUE_MARKER);
+    }
+
     protected AsyncHttpClient createAsyncHttpSSLClient() throws IOException, GeneralSecurityException {
 
         AsyncHttpClient c;
@@ -100,17 +111,7 @@ public class WebsocketSSLContextInUriRouteExampleTest extends CamelTestSupport {
         DefaultAsyncHttpClientConfig.Builder builder =
                 new DefaultAsyncHttpClientConfig.Builder();
 
-        SSLContextParameters sslContextParameters = new SSLContextParameters();
-
-        KeyStoreParameters truststoreParameters = new KeyStoreParameters();
-        truststoreParameters.setResource("jsse/localhost.ks");
-        truststoreParameters.setPassword(pwd);
-
-        TrustManagersParameters clientSSLTrustManagers = new TrustManagersParameters();
-        clientSSLTrustManagers.setKeyStore(truststoreParameters);
-        sslContextParameters.setTrustManagers(clientSSLTrustManagers);
-
-        SSLContext sslContext = sslContextParameters.createSSLContext(context());
+        SSLContext sslContext = new SSLContextParameters().createSSLContext(context());
         JdkSslContext ssl = new JdkSslContext(sslContext, true, ClientAuth.REQUIRE);
         builder.setSslContext(ssl);
         builder.setAcceptAnyCertificate(true);
@@ -134,7 +135,7 @@ public class WebsocketSSLContextInUriRouteExampleTest extends CamelTestSupport {
                                 latch.countDown();
                             }
 
-
+                            
 
                             @Override
                             public void onOpen(WebSocket websocket) {
diff --git a/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLRouteExampleTest.java b/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLRouteExampleTest.java
index 7cd608c..c2d0048 100644
--- a/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLRouteExampleTest.java
+++ b/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLRouteExampleTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.websocket;
 
 import java.io.IOException;
+import java.net.URL;
 import java.security.GeneralSecurityException;
 import java.util.ArrayList;
 import java.util.List;
@@ -48,6 +49,7 @@ import org.junit.Test;
 
 public class WebsocketSSLRouteExampleTest extends CamelTestSupport {
 
+    private static final String NULL_VALUE_MARKER = CamelTestSupport.class.getCanonicalName();
     private static List<String> received = new ArrayList<>();
     private static CountDownLatch latch = new CountDownLatch(10);
     protected Properties originalValues = new Properties();
@@ -60,6 +62,14 @@ public class WebsocketSSLRouteExampleTest extends CamelTestSupport {
         port = AvailablePortFinder.getNextAvailable(16200);
 
         super.setUp();
+
+        URL trustStoreUrl = this.getClass().getClassLoader().getResource("jsse/localhost.ks");
+        setSystemProp("javax.net.ssl.trustStore", trustStoreUrl.toURI().getPath());
+    }
+
+    protected void setSystemProp(String key, String value) {
+        String originalValue = System.setProperty(key, value);
+        originalValues.put(key, originalValue != null ? originalValue : NULL_VALUE_MARKER);
     }
 
     protected AsyncHttpClient createAsyncHttpSSLClient() throws IOException, GeneralSecurityException {
@@ -70,17 +80,7 @@ public class WebsocketSSLRouteExampleTest extends CamelTestSupport {
         DefaultAsyncHttpClientConfig.Builder builder =
                 new DefaultAsyncHttpClientConfig.Builder();
 
-        SSLContextParameters sslContextParameters = new SSLContextParameters();
-
-        KeyStoreParameters truststoreParameters = new KeyStoreParameters();
-        truststoreParameters.setResource("jsse/localhost.ks");
-        truststoreParameters.setPassword(pwd);
-
-        TrustManagersParameters clientSSLTrustManagers = new TrustManagersParameters();
-        clientSSLTrustManagers.setKeyStore(truststoreParameters);
-        sslContextParameters.setTrustManagers(clientSSLTrustManagers);
-
-        SSLContext sslContext = sslContextParameters.createSSLContext(context());
+        SSLContext sslContext = new SSLContextParameters().createSSLContext(context());
         JdkSslContext ssl = new JdkSslContext(sslContext, true, ClientAuth.REQUIRE);
         builder.setSslContext(ssl);
         builder.setAcceptAnyCertificate(true);
@@ -130,7 +130,7 @@ public class WebsocketSSLRouteExampleTest extends CamelTestSupport {
                                 latch.countDown();
                             }
 
-
+                            
                             @Override
                             public void onOpen(WebSocket websocket) {
                             }
diff --git a/parent/pom.xml b/parent/pom.xml
index 004a960..d2e47a3 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -375,7 +375,7 @@
         <jedis-client-bundle-version>2.9.0_1</jedis-client-bundle-version>
         <jersey-version>2.28</jersey-version>
         <jetty92-version>9.2.22.v20170606</jetty92-version>
-        <jetty9-version>9.4.18.v20190429</jetty9-version>
+        <jetty9-version>9.4.15.v20190215</jetty9-version>
         <jetty-version>${jetty9-version}</jetty-version>
         <jetty-plugin-version>${jetty-version}</jetty-plugin-version>
         <jetty-runner-groupId>org.eclipse.jetty</jetty-runner-groupId>