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


Reply via email to