You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ak...@apache.org on 2010/04/12 16:05:39 UTC

svn commit: r933241 - in /camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty: ClientPipelineFactory.java NettyConfiguration.java ServerPipelineFactory.java ssl/SSLEngineFactory.java

Author: akarpe
Date: Mon Apr 12 14:05:39 2010
New Revision: 933241

URL: http://svn.apache.org/viewvc?rev=933241&view=rev
Log:
CAMEL-2625 - Made updates to make TrustManager optional and add options for Keystore format and Security Provider

Modified:
    camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ClientPipelineFactory.java
    camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
    camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ServerPipelineFactory.java
    camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ssl/SSLEngineFactory.java

Modified: camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ClientPipelineFactory.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ClientPipelineFactory.java?rev=933241&r1=933240&r2=933241&view=diff
==============================================================================
--- camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ClientPipelineFactory.java (original)
+++ camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ClientPipelineFactory.java Mon Apr 12 14:05:39 2010
@@ -80,6 +80,8 @@ public class ClientPipelineFactory imple
                 LOG.debug("passphrase is null");
             }
             SSLEngineFactory sslEngineFactory = new SSLEngineFactory(
+                producer.getConfiguration().getKeyStoreFormat(),
+                producer.getConfiguration().getSecurityProvider(),
                 producer.getConfiguration().getKeyStoreFile(), 
                 producer.getConfiguration().getTrustStoreFile(), 
                 producer.getConfiguration().getPassphrase().toCharArray());

Modified: camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java?rev=933241&r1=933240&r2=933241&view=diff
==============================================================================
--- camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java (original)
+++ camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java Mon Apr 12 14:05:39 2010
@@ -52,6 +52,8 @@ public class NettyConfiguration {
     private long receiveBufferSize;
     private int corePoolSize;
     private int maxPoolSize;
+    private String keyStoreFormat;
+    private String securityProvider;
 
     public NettyConfiguration() {
         setKeepAlive(true);
@@ -80,6 +82,8 @@ public class NettyConfiguration {
      
         sslHandler = component.resolveAndRemoveReferenceParameter(parameters, "sslHandler", SslHandler.class, null);
         passphrase = component.resolveAndRemoveReferenceParameter(parameters, "passphrase", String.class, null);
+        keyStoreFormat = component.getAndRemoveParameter(parameters, "keyStoreFormat", String.class, "JKS");        
+        securityProvider = component.getAndRemoveParameter(parameters, "securityProvider", String.class, "SunX509");
         keyStoreFile = component.resolveAndRemoveReferenceParameter(parameters, "keyStoreFile", File.class, null);
         trustStoreFile = component.resolveAndRemoveReferenceParameter(parameters, "trustStoreFile", File.class, null);
         encoder = component.resolveAndRemoveReferenceParameter(parameters, "encoder", ChannelDownstreamHandler.class, new ObjectEncoder());
@@ -299,6 +303,22 @@ public class NettyConfiguration {
 
     public void setMaxPoolSize(int maxPoolSize) {
         this.maxPoolSize = maxPoolSize;
+    }
+
+    public String getKeyStoreFormat() {
+        return keyStoreFormat;
+    }
+
+    public void setKeyStoreFormat(String keyStoreFormat) {
+        this.keyStoreFormat = keyStoreFormat;
+    }
+
+    public String getSecurityProvider() {
+        return securityProvider;
+    }
+
+    public void setSecurityProvider(String securityProvider) {
+        this.securityProvider = securityProvider;
     }    
 
 }

Modified: camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ServerPipelineFactory.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ServerPipelineFactory.java?rev=933241&r1=933240&r2=933241&view=diff
==============================================================================
--- camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ServerPipelineFactory.java (original)
+++ camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ServerPipelineFactory.java Mon Apr 12 14:05:39 2010
@@ -64,10 +64,12 @@ public class ServerPipelineFactory imple
         if (consumer.getConfiguration().getSslHandler() != null) {
             return consumer.getConfiguration().getSslHandler();
         } else {
-            SSLEngineFactory sslEngineFactory = 
-                new SSLEngineFactory(consumer.getConfiguration().getKeyStoreFile(), 
-                        consumer.getConfiguration().getTrustStoreFile(), 
-                        consumer.getConfiguration().getPassphrase().toCharArray());
+            SSLEngineFactory sslEngineFactory = new SSLEngineFactory(
+                consumer.getConfiguration().getKeyStoreFormat(),
+                consumer.getConfiguration().getSecurityProvider(),
+                consumer.getConfiguration().getKeyStoreFile(), 
+                consumer.getConfiguration().getTrustStoreFile(), 
+                consumer.getConfiguration().getPassphrase().toCharArray());
             SSLEngine sslEngine = sslEngineFactory.createServerSSLEngine();
             return new SslHandler(sslEngine);
         }

Modified: camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ssl/SSLEngineFactory.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ssl/SSLEngineFactory.java?rev=933241&r1=933240&r2=933241&view=diff
==============================================================================
--- camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ssl/SSLEngineFactory.java (original)
+++ camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/ssl/SSLEngineFactory.java Mon Apr 12 14:05:39 2010
@@ -31,23 +31,27 @@ public class SSLEngineFactory {
     private static final String SSL_PROTOCOL = "TLS";
     private static SSLContext sslContext;
     
-    public SSLEngineFactory(File keyStoreFile, File trustStoreFile, char[] passphrase) throws Exception {
+    public SSLEngineFactory(String keyStoreFormat, String securityProvider, File keyStoreFile, File trustStoreFile, char[] passphrase) throws Exception {
         super();        
         
-        KeyStore ks = KeyStore.getInstance("JKS");
-        KeyStore ts = KeyStore.getInstance("JKS");
+        KeyStore ks = KeyStore.getInstance(keyStoreFormat);
 
         ks.load(IOConverter.toInputStream(keyStoreFile), passphrase);
-        ts.load(IOConverter.toInputStream(trustStoreFile), passphrase);
 
-        KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+        KeyManagerFactory kmf = KeyManagerFactory.getInstance(securityProvider);
         kmf.init(ks, passphrase);
 
-        TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
-        tmf.init(ts);
-        
         sslContext = SSLContext.getInstance(SSL_PROTOCOL);
-        sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+        
+        if (trustStoreFile != null) { 
+            KeyStore ts = KeyStore.getInstance(keyStoreFormat); 
+            ts.load(IOConverter.toInputStream(trustStoreFile), passphrase); 
+            TrustManagerFactory tmf = TrustManagerFactory.getInstance(securityProvider); 
+            tmf.init(ts); 
+            sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); 
+        } else { 
+            sslContext.init(kmf.getKeyManagers(), null, null); 
+        }
     }
 
     public SSLEngine createServerSSLEngine() {