You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dh...@apache.org on 2014/10/24 23:31:13 UTC

[1/2] git commit: CAMEL-7933: Updated Camel-apns to use SSLContextParameters

Repository: camel
Updated Branches:
  refs/heads/camel-2.13.x e3e961783 -> 7a04c279a


CAMEL-7933: Updated Camel-apns to use SSLContextParameters


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/49c2817d
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/49c2817d
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/49c2817d

Branch: refs/heads/camel-2.13.x
Commit: 49c2817d0bc9a0d9cfa3a48eda3ecb397f1d2324
Parents: e3e9617
Author: Dhiraj Bokde <dh...@yahoo.com>
Authored: Fri Oct 24 13:36:01 2014 -0700
Committer: Dhiraj Bokde <dh...@yahoo.com>
Committed: Fri Oct 24 14:31:07 2014 -0700

----------------------------------------------------------------------
 .../apns/factory/ApnsServiceFactory.java        | 21 ++++---
 .../apns/factory/ApnsServiceFactoryTest.java    |  2 +-
 .../camel/component/apns/util/ApnsUtils.java    | 60 +++++++++++++-------
 .../spring/SpringApnsConsumerTest-context.xml   |  4 +-
 4 files changed, 53 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/49c2817d/components/camel-apns/src/main/java/org/apache/camel/component/apns/factory/ApnsServiceFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-apns/src/main/java/org/apache/camel/component/apns/factory/ApnsServiceFactory.java b/components/camel-apns/src/main/java/org/apache/camel/component/apns/factory/ApnsServiceFactory.java
index 81a0257..4a51a6e 100644
--- a/components/camel-apns/src/main/java/org/apache/camel/component/apns/factory/ApnsServiceFactory.java
+++ b/components/camel-apns/src/main/java/org/apache/camel/component/apns/factory/ApnsServiceFactory.java
@@ -18,7 +18,7 @@ package org.apache.camel.component.apns.factory;
 
 import java.io.IOException;
 import java.io.InputStream;
-import javax.net.ssl.SSLContext;
+import java.security.GeneralSecurityException;
 
 import com.notnoop.apns.APNS;
 import com.notnoop.apns.ApnsDelegate;
@@ -36,6 +36,7 @@ import org.apache.camel.component.apns.util.ParamUtils;
 import org.apache.camel.component.apns.util.ResourceUtils;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ResourceHelper;
+import org.apache.camel.util.jsse.SSLContextParameters;
 
 public class ApnsServiceFactory implements CamelContextAware {
 
@@ -48,7 +49,7 @@ public class ApnsServiceFactory implements CamelContextAware {
     private String certificatePassword;
     private ConnectionStrategy connectionStrategy;
     private ReconnectionPolicy reconnectionPolicy;
-    private SSLContext sslContext;
+    private SSLContextParameters sslContextParameters;
     private int poolSize = DEFAULT_POOL_SIZE;
     private String gatewayHost;
     private int gatewayPort;
@@ -149,12 +150,12 @@ public class ApnsServiceFactory implements CamelContextAware {
         this.connectionStrategy = connectionStrategy;
     }
 
-    public SSLContext getSslContext() {
-        return sslContext;
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
     }
 
-    public void setSslContext(SSLContext sslContext) {
-        this.sslContext = sslContext;
+    public void setSslContextParameters(SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
     }
 
     public ApnsDelegate getApnsDelegate() {
@@ -176,15 +177,17 @@ public class ApnsServiceFactory implements CamelContextAware {
             configureApnsCertificate(builder);
         } catch (IOException e) {
             throw ObjectHelper.wrapRuntimeCamelException(e);
+        } catch (GeneralSecurityException e) {
+            throw ObjectHelper.wrapRuntimeCamelException(e);
         }
 
         ApnsService apnsService = builder.build();
         return apnsService;
     }
 
-    private void configureApnsCertificate(ApnsServiceBuilder builder) throws IOException {
-        if (getSslContext() != null) {
-            builder.withSSLContext(getSslContext());
+    private void configureApnsCertificate(ApnsServiceBuilder builder) throws IOException, GeneralSecurityException {
+        if (getSslContextParameters() != null) {
+            builder.withSSLContext(getSslContextParameters().createSSLContext());
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/49c2817d/components/camel-apns/src/test/java/org/apache/camel/component/apns/factory/ApnsServiceFactoryTest.java
----------------------------------------------------------------------
diff --git a/components/camel-apns/src/test/java/org/apache/camel/component/apns/factory/ApnsServiceFactoryTest.java b/components/camel-apns/src/test/java/org/apache/camel/component/apns/factory/ApnsServiceFactoryTest.java
index a784ee7..84361e1 100644
--- a/components/camel-apns/src/test/java/org/apache/camel/component/apns/factory/ApnsServiceFactoryTest.java
+++ b/components/camel-apns/src/test/java/org/apache/camel/component/apns/factory/ApnsServiceFactoryTest.java
@@ -64,7 +64,7 @@ public class ApnsServiceFactoryTest {
         apnsServiceFactory.setFeedbackPort(FixedCertificates.TEST_FEEDBACK_PORT);
         apnsServiceFactory.setGatewayHost(FixedCertificates.TEST_HOST);
         apnsServiceFactory.setGatewayPort(FixedCertificates.TEST_GATEWAY_PORT);
-        apnsServiceFactory.setSslContext(ApnsUtils.clientContext());
+        apnsServiceFactory.setSslContextParameters(ApnsUtils.clientContext());
 
         return apnsServiceFactory;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/49c2817d/components/camel-apns/src/test/java/org/apache/camel/component/apns/util/ApnsUtils.java
----------------------------------------------------------------------
diff --git a/components/camel-apns/src/test/java/org/apache/camel/component/apns/util/ApnsUtils.java b/components/camel-apns/src/test/java/org/apache/camel/component/apns/util/ApnsUtils.java
index 177f74b..74f090d 100644
--- a/components/camel-apns/src/test/java/org/apache/camel/component/apns/util/ApnsUtils.java
+++ b/components/camel-apns/src/test/java/org/apache/camel/component/apns/util/ApnsUtils.java
@@ -16,17 +16,17 @@
  */
 package org.apache.camel.component.apns.util;
 
+import java.io.IOException;
 import java.io.InputStream;
+import java.security.GeneralSecurityException;
 import java.security.Provider;
 import java.security.Provider.Service;
-import java.security.SecureRandom;
 import java.security.Security;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Random;
-
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
@@ -38,6 +38,10 @@ import com.notnoop.apns.utils.FixedCertificates;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.apns.factory.ApnsServiceFactory;
+import org.apache.camel.util.jsse.KeyManagersParameters;
+import org.apache.camel.util.jsse.KeyStoreParameters;
+import org.apache.camel.util.jsse.SSLContextParameters;
+import org.apache.camel.util.jsse.TrustManagersParameters;
 
 public final class ApnsUtils {
 
@@ -90,27 +94,39 @@ public final class ApnsUtils {
         return keys.get(0);
     }
     
-    public static SSLContext clientContext() throws Exception {
-        InputStream stream = ClassLoader.getSystemResourceAsStream(FixedCertificates.CLIENT_STORE);
-        SSLContext context = Utilities.newSSLContext(stream, 
-                                                     FixedCertificates.CLIENT_PASSWD,
-                                                     "PKCS12",
-                                                     getAlgorithm());
-        context.init(null, new TrustManager[] {new X509TrustManager() {
-            public void checkClientTrusted(X509Certificate[] chain, String authType)
-                throws CertificateException {
-            }
-
-            public void checkServerTrusted(X509Certificate[] chain, String authType)
-                throws CertificateException {
+    public static SSLContextParameters clientContext() throws Exception {
+        final KeyStoreParameters ksp = new KeyStoreParameters();
+        ksp.setResource(ClassLoader.getSystemResource(FixedCertificates.CLIENT_STORE).toString());
+        ksp.setType("PKCS12");
+
+        final KeyManagersParameters kmp = new KeyManagersParameters();
+        kmp.setKeyStore(ksp);
+        kmp.setKeyPassword(FixedCertificates.CLIENT_PASSWD);
+        kmp.setAlgorithm(getAlgorithm());
+
+        final SSLContextParameters contextParameters = new SSLContextParameters();
+        contextParameters.setKeyManagers(kmp);
+        contextParameters.setTrustManagers(new TrustManagersParameters() {
+            @Override
+            public TrustManager[] createTrustManagers() throws GeneralSecurityException, IOException {
+                return new TrustManager[] {new X509TrustManager() {
+                    public void checkClientTrusted(X509Certificate[] chain, String authType)
+                        throws CertificateException {
+                    }
+
+                    public void checkServerTrusted(X509Certificate[] chain, String authType)
+                        throws CertificateException {
+                    }
+
+                    public X509Certificate[] getAcceptedIssuers() {
+                        return new X509Certificate[0];
+                    }
+
+                }};
             }
+        });
 
-            public X509Certificate[] getAcceptedIssuers() {
-                return null;
-            }
-            
-        }}, new SecureRandom());
-        return context;
+        return contextParameters;
     }
     
     public static ApnsServiceFactory createDefaultTestConfiguration(CamelContext camelContext) 
@@ -124,7 +140,7 @@ public final class ApnsUtils {
         // apnsServiceFactory.setCertificatePath("classpath:/" +
         // FixedCertificates.CLIENT_STORE);
         // apnsServiceFactory.setCertificatePassword(FixedCertificates.CLIENT_PASSWD);
-        apnsServiceFactory.setSslContext(clientContext());
+        apnsServiceFactory.setSslContextParameters(clientContext());
         return apnsServiceFactory;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/49c2817d/components/camel-apns/src/test/resources/org/apache/camel/component/apns/spring/SpringApnsConsumerTest-context.xml
----------------------------------------------------------------------
diff --git a/components/camel-apns/src/test/resources/org/apache/camel/component/apns/spring/SpringApnsConsumerTest-context.xml b/components/camel-apns/src/test/resources/org/apache/camel/component/apns/spring/SpringApnsConsumerTest-context.xml
index 712ba84..cd0c9fd 100644
--- a/components/camel-apns/src/test/resources/org/apache/camel/component/apns/spring/SpringApnsConsumerTest-context.xml
+++ b/components/camel-apns/src/test/resources/org/apache/camel/component/apns/spring/SpringApnsConsumerTest-context.xml
@@ -31,12 +31,12 @@
     <property name="feedbackPort" value="7843"/>
     <property name="gatewayHost" value="localhost"/>
     <property name="gatewayPort" value="7654"/>
-    <property name="sslContext" ref="sslContext"/>
+    <property name="sslContextParameters" ref="sslContextParameters"/>
   </bean>
 
   <bean id="apnsService" factory-bean="apnsServiceFactory" factory-method="getApnsService"/>
 
-  <bean id="sslContext" class="org.apache.camel.component.apns.util.ApnsUtils" factory-method="clientContext"/>
+  <bean id="sslContextParameters" class="org.apache.camel.component.apns.util.ApnsUtils" factory-method="clientContext"/>
 
   <bean id="apns" class="org.apache.camel.component.apns.ApnsComponent">
     <property name="apnsService" ref="apnsService"/>


[2/2] git commit: CAMEL-7956: Updated Camel-salesforce to support SSLContextParameters to configure HttpClient

Posted by dh...@apache.org.
CAMEL-7956: Updated Camel-salesforce to support SSLContextParameters to configure HttpClient


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7a04c279
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7a04c279
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7a04c279

Branch: refs/heads/camel-2.13.x
Commit: 7a04c279a4d648830f68ab5984589d61b11e8730
Parents: 49c2817
Author: Dhiraj Bokde <dh...@yahoo.com>
Authored: Fri Oct 24 13:21:07 2014 -0700
Committer: Dhiraj Bokde <dh...@yahoo.com>
Committed: Fri Oct 24 14:31:08 2014 -0700

----------------------------------------------------------------------
 .../component/salesforce/SalesforceComponent.java | 18 +++++++++++++++++-
 .../internal/SessionIntegrationTest.java          |  6 +++++-
 2 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/7a04c279/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
----------------------------------------------------------------------
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 52dafa5..8a38bec 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
@@ -41,8 +41,10 @@ import org.apache.camel.spi.EndpointCompleter;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ReflectionHelper;
 import org.apache.camel.util.ServiceHelper;
+import org.apache.camel.util.jsse.SSLContextParameters;
 import org.eclipse.jetty.client.HttpClient;
 import org.eclipse.jetty.client.RedirectListener;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -60,6 +62,8 @@ public class SalesforceComponent extends UriEndpointComponent implements Endpoin
 
     private SalesforceLoginConfig loginConfig;
     private SalesforceEndpointConfig config;
+
+    private SSLContextParameters sslContextParameters;
     private String[] packages;
 
     // component state
@@ -136,7 +140,11 @@ public class SalesforceComponent extends UriEndpointComponent implements Endpoin
             if (config != null && config.getHttpClient() != null) {
                 httpClient = config.getHttpClient();
             } else {
-                httpClient = new HttpClient();
+                final SslContextFactory sslContextFactory = new SslContextFactory();
+                final SSLContextParameters contextParameters =
+                    sslContextParameters != null ? sslContextParameters : new SSLContextParameters();
+                sslContextFactory.setSslContext(contextParameters.createSSLContext());
+                httpClient = new HttpClient(sslContextFactory);
                 httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
                 httpClient.setMaxConnectionsPerAddress(MAX_CONNECTIONS_PER_ADDRESS);
                 httpClient.setConnectTimeout(CONNECTION_TIMEOUT);
@@ -303,6 +311,14 @@ public class SalesforceComponent extends UriEndpointComponent implements Endpoin
         this.config = config;
     }
 
+    public SSLContextParameters getSslContextParameters() {
+        return sslContextParameters;
+    }
+
+    public void setSslContextParameters(SSLContextParameters sslContextParameters) {
+        this.sslContextParameters = sslContextParameters;
+    }
+
     public String[] getPackages() {
         return packages;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/7a04c279/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java
----------------------------------------------------------------------
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 ce55033..a25ad52 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
@@ -17,8 +17,10 @@
 package org.apache.camel.component.salesforce.internal;
 
 import org.apache.camel.component.salesforce.LoginConfigHelper;
+import org.apache.camel.util.jsse.SSLContextParameters;
 import org.eclipse.jetty.client.HttpClient;
 import org.eclipse.jetty.client.RedirectListener;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
 import org.junit.Assert;
 import org.junit.Test;
 import org.slf4j.Logger;
@@ -37,7 +39,9 @@ public class SessionIntegrationTest extends Assert implements SalesforceSession.
     @Test
     public void testLogin() throws Exception {
 
-        final HttpClient httpClient = new HttpClient();
+        final SslContextFactory sslContextFactory = new SslContextFactory();
+        sslContextFactory.setSslContext(new SSLContextParameters().createSSLContext());
+        final HttpClient httpClient = new HttpClient(sslContextFactory);
         httpClient.setConnectTimeout(TIMEOUT);
         httpClient.setTimeout(TIMEOUT);
         httpClient.registerListener(RedirectListener.class.getName());