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