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());