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:43:40 UTC
[1/5] git commit: CAMEL-7955: Updated Camel-linkedin to use
SSLContextParameters to configure HtmlUnit for OAuth
Repository: camel
Updated Branches:
refs/heads/master 007403ac4 -> bc5bfe46a
CAMEL-7955: Updated Camel-linkedin to use SSLContextParameters to configure HtmlUnit for OAuth
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3db68c5a
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3db68c5a
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3db68c5a
Branch: refs/heads/master
Commit: 3db68c5af3567191e3f0cf632f19e79628de2c3c
Parents: 608c99c
Author: Dhiraj Bokde <dh...@yahoo.com>
Authored: Fri Oct 24 13:27:09 2014 -0700
Committer: Dhiraj Bokde <dh...@yahoo.com>
Committed: Fri Oct 24 14:43:15 2014 -0700
----------------------------------------------------------------------
.../linkedin/api/LinkedInOAuthRequestFilter.java | 4 +++-
.../api/AbstractResourceIntegrationTest.java | 4 ++--
.../component/linkedin/LinkedInComponent.java | 18 +++++++++++++++++-
3 files changed, 22 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/3db68c5a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInOAuthRequestFilter.java
----------------------------------------------------------------------
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInOAuthRequestFilter.java b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInOAuthRequestFilter.java
index 4fd7194..ed11944 100644
--- a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInOAuthRequestFilter.java
+++ b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInOAuthRequestFilter.java
@@ -47,6 +47,7 @@ import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
+
import org.apache.http.HttpHost;
import org.apache.http.HttpStatus;
import org.apache.http.conn.params.ConnRoutePNames;
@@ -82,7 +83,7 @@ public final class LinkedInOAuthRequestFilter implements ClientRequestFilter {
@SuppressWarnings("deprecation")
public LinkedInOAuthRequestFilter(OAuthParams oAuthParams, Map<String, Object> httpParams,
- boolean lazyAuth) {
+ boolean lazyAuth, String[] enabledProtocols) {
this.oAuthParams = oAuthParams;
this.oAuthToken = null;
@@ -95,6 +96,7 @@ public final class LinkedInOAuthRequestFilter implements ClientRequestFilter {
options.setThrowExceptionOnFailingStatusCode(true);
options.setThrowExceptionOnScriptError(true);
options.setPrintContentOnFailingStatusCode(LOG.isDebugEnabled());
+ options.setSSLClientProtocols(enabledProtocols);
// add HTTP proxy if set
if (httpParams != null && httpParams.get(ConnRoutePNames.DEFAULT_PROXY) != null) {
http://git-wip-us.apache.org/repos/asf/camel/blob/3db68c5a/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/AbstractResourceIntegrationTest.java
----------------------------------------------------------------------
diff --git a/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/AbstractResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/AbstractResourceIntegrationTest.java
index d8f474e..b0f3ad8 100644
--- a/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/AbstractResourceIntegrationTest.java
+++ b/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/AbstractResourceIntegrationTest.java
@@ -48,7 +48,7 @@ public class AbstractResourceIntegrationTest extends Assert {
@BeforeClass
public static void beforeClass() throws Exception {
properties = new Properties();
- properties.load(PeopleResourceIntegrationTest.class.getResourceAsStream("/test-options.properties"));
+ properties.load(AbstractResourceIntegrationTest.class.getResourceAsStream("/test-options.properties"));
requestFilter = createOAuthHelper();
}
@@ -82,7 +82,7 @@ public class AbstractResourceIntegrationTest extends Assert {
final OAuthParams oAuthParams = new OAuthParams(userName, userPassword, secureStorage,
clientId, clientSecret, redirectUri, scopes);
- return new LinkedInOAuthRequestFilter(oAuthParams, null, false);
+ return new LinkedInOAuthRequestFilter(oAuthParams, null, false, null);
}
@AfterClass
http://git-wip-us.apache.org/repos/asf/camel/blob/3db68c5a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java
index 4434f8c..a45a300 100644
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java
+++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java
@@ -16,6 +16,10 @@
*/
package org.apache.camel.component.linkedin;
+import java.io.IOException;
+import java.security.GeneralSecurityException;
+import javax.net.ssl.SSLContext;
+
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.component.linkedin.api.LinkedInOAuthRequestFilter;
@@ -24,7 +28,9 @@ import org.apache.camel.component.linkedin.internal.CachingOAuthSecureStorage;
import org.apache.camel.component.linkedin.internal.LinkedInApiCollection;
import org.apache.camel.component.linkedin.internal.LinkedInApiName;
import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.component.AbstractApiComponent;
+import org.apache.camel.util.jsse.SSLContextParameters;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -72,8 +78,18 @@ public class LinkedInComponent extends AbstractApiComponent<LinkedInApiName, Lin
// validate configuration
configuration.validate();
+ final String[] enabledProtocols;
+ try {
+ // use default SSP to create supported non-SSL protocols list
+ final SSLContext sslContext = new SSLContextParameters().createSSLContext();
+ enabledProtocols = sslContext.createSSLEngine().getEnabledProtocols();
+ } catch (GeneralSecurityException e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ } catch (IOException e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
return new LinkedInOAuthRequestFilter(getOAuthParams(configuration),
- configuration.getHttpParams(), configuration.isLazyAuth());
+ configuration.getHttpParams(), configuration.isLazyAuth(), enabledProtocols);
}
private static OAuthParams getOAuthParams(LinkedInConfiguration configuration) {
[2/5] 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/608c99c5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/608c99c5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/608c99c5
Branch: refs/heads/master
Commit: 608c99c5b88f86bcb2a42dd81454605cc075e485
Parents: 007403a
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:43:15 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/608c99c5/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/608c99c5/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());
[4/5] git commit: CAMEL-7933: Updated Camel-apns to use
SSLContextParameters
Posted by dh...@apache.org.
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/b4573e34
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/b4573e34
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/b4573e34
Branch: refs/heads/master
Commit: b4573e34b02bb936eca7edb26df0415e4f4c1cde
Parents: d06f3af
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:43:16 2014 -0700
----------------------------------------------------------------------
.../apns/factory/ApnsServiceFactory.java | 21 ++++---
.../apns/factory/ApnsServiceFactoryTest.java | 2 +-
.../ConfiguredApnsServiceFactoryTest.java | 5 +-
.../camel/component/apns/util/ApnsUtils.java | 60 +++++++++++++-------
.../spring/SpringApnsConsumerTest-context.xml | 4 +-
5 files changed, 56 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/b4573e34/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 0debdd1..0557d2c 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() {
@@ -177,6 +178,8 @@ 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();
@@ -187,9 +190,9 @@ public class ApnsServiceFactory implements CamelContextAware {
return serviceBuilder;
}
- 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/b4573e34/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/b4573e34/components/camel-apns/src/test/java/org/apache/camel/component/apns/factory/ConfiguredApnsServiceFactoryTest.java
----------------------------------------------------------------------
diff --git a/components/camel-apns/src/test/java/org/apache/camel/component/apns/factory/ConfiguredApnsServiceFactoryTest.java b/components/camel-apns/src/test/java/org/apache/camel/component/apns/factory/ConfiguredApnsServiceFactoryTest.java
index c48c6c0..f3fc60f 100644
--- a/components/camel-apns/src/test/java/org/apache/camel/component/apns/factory/ConfiguredApnsServiceFactoryTest.java
+++ b/components/camel-apns/src/test/java/org/apache/camel/component/apns/factory/ConfiguredApnsServiceFactoryTest.java
@@ -17,9 +17,10 @@
package org.apache.camel.component.apns.factory;
import java.io.IOException;
-import javax.net.ssl.SSLContext;
import com.notnoop.apns.ApnsServiceBuilder;
+
+import org.apache.camel.util.jsse.SSLContextParameters;
import org.junit.Before;
import org.junit.Test;
@@ -42,7 +43,7 @@ public class ConfiguredApnsServiceFactoryTest {
@Before
public void setUp() throws IOException {
- apnsServiceFactory.setSslContext(mock(SSLContext.class));
+ apnsServiceFactory.setSslContextParameters(mock(SSLContextParameters.class));
}
@Test
http://git-wip-us.apache.org/repos/asf/camel/blob/b4573e34/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/b4573e34/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"/>
[3/5] git commit: CAMEL-7954: Updated Camel-box to use
SSLContextParameters
Posted by dh...@apache.org.
CAMEL-7954: Updated Camel-box 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/d06f3af1
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d06f3af1
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d06f3af1
Branch: refs/heads/master
Commit: d06f3af13aa3ec895c99db01a0a44be40d6113f9
Parents: 3db68c5
Author: Dhiraj Bokde <dh...@yahoo.com>
Authored: Fri Oct 24 13:32:01 2014 -0700
Committer: Dhiraj Bokde <dh...@yahoo.com>
Committed: Fri Oct 24 14:43:16 2014 -0700
----------------------------------------------------------------------
.../camel/component/box/BoxConfiguration.java | 12 +++++++++++
.../component/box/internal/BoxClientHelper.java | 22 ++++++++++++++++++++
.../component/box/internal/LoginAuthFlowUI.java | 15 +++++++++++++
3 files changed, 49 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/d06f3af1/components/camel-box/src/main/java/org/apache/camel/component/box/BoxConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-box/src/main/java/org/apache/camel/component/box/BoxConfiguration.java b/components/camel-box/src/main/java/org/apache/camel/component/box/BoxConfiguration.java
index 0fdac6d..2fabf7f 100644
--- a/components/camel-box/src/main/java/org/apache/camel/component/box/BoxConfiguration.java
+++ b/components/camel-box/src/main/java/org/apache/camel/component/box/BoxConfiguration.java
@@ -24,6 +24,7 @@ import com.box.boxjavalibv2.authorization.IAuthSecureStorage;
import com.box.boxjavalibv2.authorization.OAuthRefreshListener;
import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriParams;
+import org.apache.camel.util.jsse.SSLContextParameters;
/**
* Component configuration for Box component.
@@ -67,6 +68,9 @@ public class BoxConfiguration {
@UriParam
private Map<String, Object> httpParams;
+ @UriParam
+ private SSLContextParameters sslContextParameters;
+
/**
* Box.com login timeout in seconds, defaults to 30.
*/
@@ -169,6 +173,14 @@ public class BoxConfiguration {
this.httpParams = httpParams;
}
+ public SSLContextParameters getSslContextParameters() {
+ return sslContextParameters;
+ }
+
+ public void setSslContextParameters(SSLContextParameters sslContextParameters) {
+ this.sslContextParameters = sslContextParameters;
+ }
+
public int getLoginTimeout() {
return loginTimeout;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/d06f3af1/components/camel-box/src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-box/src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java b/components/camel-box/src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java
index 0f94aec..54c3e49 100644
--- a/components/camel-box/src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java
+++ b/components/camel-box/src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.component.box.internal;
+import java.io.IOException;
+import java.security.GeneralSecurityException;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
@@ -29,11 +31,16 @@ import com.box.boxjavalibv2.exceptions.AuthFatalFailureException;
import com.box.boxjavalibv2.exceptions.BoxServerException;
import com.box.restclientv2.IBoxRESTClient;
import com.box.restclientv2.exceptions.BoxRestException;
+
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.component.box.BoxConfiguration;
import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.jsse.SSLContextParameters;
import org.apache.http.client.HttpClient;
import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.scheme.Scheme;
+import org.apache.http.conn.scheme.SchemeRegistry;
+import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.params.HttpParams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -79,6 +86,21 @@ public final class BoxClientHelper {
public HttpClient getRawHttpClient() {
final HttpClient httpClient = super.getRawHttpClient();
clientConnectionManager[0] = httpClient.getConnectionManager();
+ final SchemeRegistry schemeRegistry = clientConnectionManager[0].getSchemeRegistry();
+ SSLContextParameters sslContextParameters = configuration.getSslContextParameters();
+ if (sslContextParameters == null) {
+ sslContextParameters = new SSLContextParameters();
+ }
+ try {
+ final SSLSocketFactory socketFactory = new SSLSocketFactory(
+ sslContextParameters.createSSLContext(),
+ SSLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
+ schemeRegistry.register(new Scheme("https", socketFactory, 443));
+ } catch (GeneralSecurityException e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ } catch (IOException e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
// set custom HTTP params
final Map<String, Object> configParams = configuration.getHttpParams();
http://git-wip-us.apache.org/repos/asf/camel/blob/d06f3af1/components/camel-box/src/main/java/org/apache/camel/component/box/internal/LoginAuthFlowUI.java
----------------------------------------------------------------------
diff --git a/components/camel-box/src/main/java/org/apache/camel/component/box/internal/LoginAuthFlowUI.java b/components/camel-box/src/main/java/org/apache/camel/component/box/internal/LoginAuthFlowUI.java
index 568d27c..0568ad9 100644
--- a/components/camel-box/src/main/java/org/apache/camel/component/box/internal/LoginAuthFlowUI.java
+++ b/components/camel-box/src/main/java/org/apache/camel/component/box/internal/LoginAuthFlowUI.java
@@ -16,12 +16,16 @@
*/
package org.apache.camel.component.box.internal;
+import java.io.IOException;
+import java.security.GeneralSecurityException;
import java.security.SecureRandom;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import javax.net.ssl.SSLContext;
+
import com.box.boxjavalibv2.BoxClient;
import com.box.boxjavalibv2.authorization.IAuthFlowListener;
import com.box.boxjavalibv2.authorization.IAuthFlowUI;
@@ -43,6 +47,8 @@ import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
import org.apache.camel.component.box.BoxConfiguration;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.jsse.SSLContextParameters;
import org.apache.http.HttpHost;
import org.apache.http.HttpStatus;
import org.apache.http.conn.params.ConnRoutePNames;
@@ -81,6 +87,15 @@ public final class LoginAuthFlowUI implements IAuthFlowUI {
options.setThrowExceptionOnFailingStatusCode(true);
options.setThrowExceptionOnScriptError(true);
options.setPrintContentOnFailingStatusCode(LOG.isDebugEnabled());
+ try {
+ // use default SSP to create supported non-SSL protocols list
+ final SSLContext sslContext = new SSLContextParameters().createSSLContext();
+ options.setSSLClientProtocols(sslContext.createSSLEngine().getEnabledProtocols());
+ } catch (GeneralSecurityException e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ } catch (IOException e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
// add HTTP proxy if set
final Map<String, Object> httpParams = configuration.getHttpParams();
[5/5] git commit: CAMEL-7934: Updated Camel-olingo2 to use
SSLContextParameters
Posted by dh...@apache.org.
CAMEL-7934: Updated Camel-olingo2 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/bc5bfe46
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/bc5bfe46
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/bc5bfe46
Branch: refs/heads/master
Commit: bc5bfe46a76c6b1d18537639cac5625412f00622
Parents: b4573e3
Author: Dhiraj Bokde <dh...@yahoo.com>
Authored: Fri Oct 24 13:37:59 2014 -0700
Committer: Dhiraj Bokde <dh...@yahoo.com>
Committed: Fri Oct 24 14:43:16 2014 -0700
----------------------------------------------------------------------
.../component/olingo2/Olingo2Component.java | 19 +++++++++++++++----
.../component/olingo2/Olingo2Configuration.java | 16 ++++++++--------
2 files changed, 23 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/bc5bfe46/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
----------------------------------------------------------------------
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
index 866817f..69faa56 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
@@ -16,8 +16,9 @@
*/
package org.apache.camel.component.olingo2;
+import java.io.IOException;
+import java.security.GeneralSecurityException;
import java.util.Map;
-import javax.net.ssl.SSLContext;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
@@ -25,7 +26,9 @@ import org.apache.camel.component.olingo2.api.impl.Olingo2AppImpl;
import org.apache.camel.component.olingo2.internal.Olingo2ApiCollection;
import org.apache.camel.component.olingo2.internal.Olingo2ApiName;
import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.component.AbstractApiComponent;
+import org.apache.camel.util.jsse.SSLContextParameters;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
@@ -122,9 +125,17 @@ public class Olingo2Component extends AbstractApiComponent<Olingo2ApiName, Oling
// set default request config
clientBuilder.setDefaultRequestConfig(requestConfigBuilder.build());
- final SSLContext context = configuration.getSslContext();
- if (context != null) {
- clientBuilder.setSSLContext(context);
+ SSLContextParameters sslContextParameters = configuration.getSslContextParameters();
+ if (sslContextParameters == null) {
+ // use defaults if not specified
+ sslContextParameters = new SSLContextParameters();
+ }
+ try {
+ clientBuilder.setSSLContext(sslContextParameters.createSSLContext());
+ } catch (GeneralSecurityException e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ } catch (IOException e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bc5bfe46/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Configuration.java
----------------------------------------------------------------------
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Configuration.java b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Configuration.java
index e6ec348..2e2771f 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Configuration.java
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Configuration.java
@@ -17,10 +17,10 @@
package org.apache.camel.component.olingo2;
import java.util.Map;
-import javax.net.ssl.SSLContext;
import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriParams;
+import org.apache.camel.util.jsse.SSLContextParameters;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.http.HttpHost;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
@@ -55,7 +55,7 @@ public class Olingo2Configuration {
private HttpHost proxy;
@UriParam
- private SSLContext sslContext;
+ private SSLContextParameters sslContextParameters;
// for more complex configuration, use a client builder
@UriParam
@@ -109,12 +109,12 @@ public class Olingo2Configuration {
this.proxy = proxy;
}
- 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 HttpAsyncClientBuilder getHttpAsyncClientBuilder() {
@@ -134,7 +134,7 @@ public class Olingo2Configuration {
.append(connectTimeout)
.append(socketTimeout)
.append(proxy)
- .append(sslContext)
+ .append(sslContextParameters)
.append(httpAsyncClientBuilder)
.hashCode();
}
@@ -149,7 +149,7 @@ public class Olingo2Configuration {
&& connectTimeout == other.connectTimeout
&& socketTimeout == other.socketTimeout
&& proxy == null ? other.proxy == null : proxy.equals(other.proxy)
- && sslContext == null ? other.sslContext == null : sslContext.equals(other.sslContext)
+ && sslContextParameters == null ? other.sslContextParameters == null : sslContextParameters.equals(other.sslContextParameters)
&& httpAsyncClientBuilder == null ? other.httpAsyncClientBuilder == null
: httpAsyncClientBuilder.equals(other.httpAsyncClientBuilder);
}