You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2014/07/15 13:39:58 UTC
[04/27] git commit: Allow loose SSL client validation for testing
Allow loose SSL client validation for testing
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/2485a7f0
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2485a7f0
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2485a7f0
Branch: refs/heads/master
Commit: 2485a7f0510ef69b06e3abacd205926ce5d02bb8
Parents: 31ec7e5
Author: Doug Turnbull <dt...@o19s.com>
Authored: Mon Apr 28 21:41:28 2014 -0400
Committer: Doug Turnbull <dt...@o19s.com>
Committed: Mon Apr 28 21:41:28 2014 -0400
----------------------------------------------------------------------
.../camel/component/solr/SolrEndpoint.java | 6 ++-
.../camel/component/solr/JettySolrFactory.java | 50 ++++++++++++++++++++
.../solr/SolrComponentTestSupport.java | 4 +-
3 files changed, 57 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/2485a7f0/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrEndpoint.java b/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrEndpoint.java
index 564aaa4..a43ccfd 100644
--- a/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrEndpoint.java
+++ b/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrEndpoint.java
@@ -41,10 +41,14 @@ public class SolrEndpoint extends DefaultEndpoint {
private Integer maxTotalConnections;
private Boolean followRedirects;
private Boolean allowCompression;
+ private String scheme = "http://";
public SolrEndpoint(String endpointUri, SolrComponent component, String address) throws Exception {
super(endpointUri, component);
- URL url = new URL("http://" + address);
+ if (endpointUri.startsWith("solrs")) {
+ scheme = "https://";
+ }
+ URL url = new URL(scheme + address);
this.url = url.toString();
}
http://git-wip-us.apache.org/repos/asf/camel/blob/2485a7f0/components/camel-solr/src/test/java/org/apache/camel/component/solr/JettySolrFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-solr/src/test/java/org/apache/camel/component/solr/JettySolrFactory.java b/components/camel-solr/src/test/java/org/apache/camel/component/solr/JettySolrFactory.java
index 7a92837..0bd8dba 100644
--- a/components/camel-solr/src/test/java/org/apache/camel/component/solr/JettySolrFactory.java
+++ b/components/camel-solr/src/test/java/org/apache/camel/component/solr/JettySolrFactory.java
@@ -1,8 +1,21 @@
package org.apache.camel.component.solr;
import java.io.File;
+import java.security.KeyManagementException;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.X509Certificate;
import java.util.SortedMap;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.conn.ssl.SSLContextBuilder;
+import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.lucene.util.Constants;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.embedded.SSLConfig;
@@ -14,6 +27,7 @@ import org.eclipse.jetty.servlet.ServletHolder;
public class JettySolrFactory {
public static File TEST_KEYSTORE = new File("./target/test-classes/solrtest.keystore");
+ private static boolean mockedSslClient = false;
private static String TEST_KEYSTORE_PATH = TEST_KEYSTORE.getAbsolutePath();
private static String TEST_KEYSTORE_PASSWORD = "secret";
@@ -26,11 +40,47 @@ public class JettySolrFactory {
TEST_KEYSTORE_PATH, TEST_KEYSTORE_PASSWORD);
return sslConfig;
}
+
+ private static void installAllTrustingClientSsl() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException {
+ SSLContextBuilder builder = new SSLContextBuilder();
+ builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
+ SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
+ builder.build());
+
+// // Create a trust manager that does not validate certificate chains
+ final TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
+ @Override
+ public void checkClientTrusted( final X509Certificate[] chain, final String authType ) {
+ }
+ @Override
+ public void checkServerTrusted( final X509Certificate[] chain, final String authType ) {
+ }
+ @Override
+ public X509Certificate[] getAcceptedIssuers() {
+ return null;
+ }
+ } };
+ final SSLContext sslContext = SSLContext.getInstance( "TLS" );
+ sslContext.init( null, trustAllCerts, new java.security.SecureRandom() );
+ SSLContext.setDefault(sslContext);
+
+
+// // Install the all-trusting trust manager
+// final SSLContext sslContext = SSLContext.getInstance( "SSL" );
+// sslContext.init( null, trustAllCerts, new java.security.SecureRandom() );
+// // Create an ssl socket factory with our all-trusting manager
+// final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
+// HttpsURLConnection.setDefaultSSLSocketFactory(sslSocketFactory);
+ }
private static JettySolrRunner createJetty(String solrHome,
String configFile, String schemaFile, String context,
boolean stopAtShutdown,
SortedMap<ServletHolder, String> extraServlets, boolean ssl) throws Exception {
+ if (!mockedSslClient) {
+ installAllTrustingClientSsl();
+ mockedSslClient = true;
+ }
// Set appropriate paths for Solr to use.
System.setProperty("solr.solr.home", solrHome);
System.setProperty("jetty.testMode", "true");
http://git-wip-us.apache.org/repos/asf/camel/blob/2485a7f0/components/camel-solr/src/test/java/org/apache/camel/component/solr/SolrComponentTestSupport.java
----------------------------------------------------------------------
diff --git a/components/camel-solr/src/test/java/org/apache/camel/component/solr/SolrComponentTestSupport.java b/components/camel-solr/src/test/java/org/apache/camel/component/solr/SolrComponentTestSupport.java
index 3779621..118229e 100644
--- a/components/camel-solr/src/test/java/org/apache/camel/component/solr/SolrComponentTestSupport.java
+++ b/components/camel-solr/src/test/java/org/apache/camel/component/solr/SolrComponentTestSupport.java
@@ -65,11 +65,11 @@ public class SolrComponentTestSupport extends SolrTestSupport {
Map<String, Object> headers = new HashMap<String, Object>();
headers.put(SolrConstants.OPERATION, SolrConstants.OPERATION_INSERT);
headers.put("SolrField.id", id);
- template.sendBodyAndHeaders("direct:start", null, headers);
+ template.sendBodyAndHeaders("direct:start", "", headers);
}
protected void solrCommit() {
- template.sendBodyAndHeader("direct:start", null, SolrConstants.OPERATION, SolrConstants.OPERATION_COMMIT);
+ template.sendBodyAndHeader("direct:start", "", SolrConstants.OPERATION, SolrConstants.OPERATION_COMMIT);
}
protected QueryResponse executeSolrQuery(String query) throws SolrServerException {