Improvements and minor change requests to camel-netty
-----------------------------------------------------

                 Key: CAMEL-2625
                 URL: https://issues.apache.org/activemq/browse/CAMEL-2625
             Project: Apache Camel
          Issue Type: Improvement
            Reporter: Ashwin Karpe
             Fix For: 2.3.0


(Request by Gareth Collins via nabble request...)

Would it be possible to make the TrustManager optional for Netty SSL support? I 
made a change in my local version of camel-netty and it works for me (file 
org.apache.camel.component.netty.ssl.SSLEngineFactory - replacement for the 
original SSLEngineFactory constructor): 

public SSLEngineFactory(File keyStoreFile, File trustStoreFile, char[] 
passphrase) throws Exception { 
        super();         
        
        KeyStore ks = KeyStore.getInstance("JKS"); 
        
        ks.load(IOConverter.toInputStream(keyStoreFile), passphrase); 
        
        KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); 
        kmf.init(ks, passphrase); 
        
        sslContext = SSLContext.getInstance(SSL_PROTOCOL); 
        
        
        if (trustStoreFile != null) 
        { 
        
        KeyStore ts = KeyStore.getInstance("JKS"); 

        ts.load(IOConverter.toInputStream(trustStoreFile), passphrase); 

        TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509"); 
        tmf.init(ts); 
        sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); 
        } 
        else 
        { 
        sslContext.init(kmf.getKeyManagers(), null, null); 
        } 
    } 

I ask for this as I have to contact a server where SSL will not work properly 
if a TrustManager is installed. If this could go in before CAMEL 2.3 it would 
be much appreciated. 

A couple of questions about the netty implementation: 

(1) Is there a reason why JKS was hardcoded here, rather than allowing the key 
store format to be configured? 

(2) When I add the TrustManager using netty for the connection where it could 
not be used, netty throws me no exception, the connection remains open, but the 
messages I send do not get to the server. If I connect directly using an 
SSLSocket I see a javax.net.ssl.SSLHandshakeException. Is there something I am 
missing here?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to