camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Johan Edstrom <>
Subject Re: [jira] [Commented] (CAMEL-3750) Provide a common mechanism to facilitate configuration of TLS across Camel components
Date Sun, 03 Apr 2011 01:04:21 GMT
Do you have NamespaceHandlers for this as well?

On Apr 2, 2011, at 3:46 PM, David Valeri (JIRA) wrote:

>    [
> David Valeri commented on CAMEL-3750:
> -------------------------------------
> Claus, thanks for taking a look and providing the feedback.
> I'll refactor the resource loading, add some OSGi based unit tests, and split the patch
as requested.  I'm guessing it will take me a week or two to find the time to to make these
>> Provide a common mechanism to facilitate configuration of TLS across Camel components
>> -------------------------------------------------------------------------------------
>>                Key: CAMEL-3750
>>                URL:
>>            Project: Camel
>>         Issue Type: New Feature
>>         Components: camel-core, camel-http, camel-jetty
>>           Reporter: David Valeri
>>            Fix For: Future
>>        Attachments: CAMEL-3750.patch
>> CXF provides a nice Spring Namespace handler for configuring TLS options on the Jetty
transport.  Configuring these options using XML in Spring or through a simplified set of utility
classes decreases the learning curve for users by sheltering them from the horrors of JSSE.
>> There are a large number of components in Camel that deal with socket communication
at some level, but they all require users to learn the specific low level configuration capabilities
of the library on which the component is based in order to configure custom TLS options.
>> It would be convenient if users didn't need to learn the advanced networking configuration
options for each component.
>> This enhancement suggests a similar Spring Namespace handler and utility classes
that allow for simplified configuration of an SSLContext as well as adding provisions to some
of the Camel components in order to accept this new configuration mechanism.  The initial
components to support the new configuration mechanism are the http, http4, and Jetty components.
 Other components would follow.
>> An example usage is below.
>> Programmatic configuration:
>> {code}
>> KeyStoreParameters ksp = new KeyStoreParameters();
>> ksp.setResource(this.getClass().getClassLoader().getResource("jsse/localhost.ks").toString());
>> ksp.setPassword(pwd);
>> KeyManagersParameters kmp = new KeyManagersParameters();
>> kmp.setKeyPassword(pwd);
>> kmp.setKeyStore(ksp);
>> TrustManagersParameters tmp = new TrustManagersParameters();
>> tmp.setKeyStore(ksp);
>> SSLContextParameters sslContextParameters = new SSLContextParameters();
>> sslContextParameters.setKeyManagers(kmp);
>> sslContextParameters.setTrustManagers(tmp);
>> {code}
>> XML Configuration:
>> {code:XML}
>> <SSLContextParameters id="sslContextParameters" secureSocketProtocol="TLS">
>>  <keyManagers
>>      keyPassword="password">
>>    <keyStore resource="./localhost.jks" password="password"/>
>>  </keyManagers>
>>  <secureSocketProtocolsFilter>
>>    <include>TLS.*</include>
>>  </secureSocketProtocolsFilter>
>> </SSLContextParameters>
>> {code}
>> Usage in a route:
>> {code}
>> from("jetty:https://localhost:443/hello?sslContextParametersRef=sslContextParameters").process(proc);
>> {code}
> --
> This message is automatically generated by JIRA.
> For more information on JIRA, see:

View raw message