MLLP transport-level encryption
TLS-related aspects of MLLP-based transactions are controlled by the following URI parameters:
Parameters
Parameter name | Type | Default value | Description |
---|---|---|---|
secure |
boolean | false | enables transport-level encryption for the given endpoint |
sslContext |
String | n/a | name of a user-defined SSL context, if any, with leading ‘#’. |
sslContextParameters |
SSLContextParameters | n/a | enables transport-level encryption and determines the SSL parameters that shall be applied to the endpoint |
sslProtocols |
String | as defined in SSLContext | comma-separated list of SSL protocols that should be enforced by the given endpoint |
sslCiphers |
String | as defined in SSLContext | comma-separated list of SSL cipher suites that should be enforced by the given endpoint |
clientAuth |
one of NONE , WANT , MUST |
as defined in SSLContext | whether client authentication for mutual TLS is required (MUST), requested (WANT) or not requested (NONE) on the given endpoint |
If secure
is set to true but neither sslContext
nor sslContextParameters
are provided,the Camel registry is looked up for
a unique sslContextParameters
bean instance to be used. If none is found, a default SSL Context
(optionally controlled by the system environment) is instantiated. If more than one is found, an exception is thrown.
clientAuth
, sslProtocols
and sslCiphers
override the corresponding settings in sslContext
or sslContextParameters
SslContextParameters can be configured as shown in the example below. In this case, the MLLP producer URI requires
the parameter sslContextParameters=#myContext
.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:camel="http://camel.apache.org/schema/spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
...
<camel:sslContextParameters id="myContext">
<camel:keyManagers keyPassword="changeit">
<camel:keyStore type="JKS" password="changeit" resource="client.jks"/>
</camel:keyManagers>
<camel:trustManagers>
<camel:keyStore type="JKS" password="changeit" resource="client.jks"/>
</camel:trustManagers>
<camel:clientParameters>
<camel:cipherSuitesFilter>
<camel:include>.*_EXPORT_.*</camel:include>
<camel:include>.*_EXPORT1024_.*</camel:include>
<camel:include>.*_WITH_DES_.*</camel:include>
<camel:include>.*_WITH_NULL_.*</camel:include>
<camel:exclude>.*_DH_anon_.*</camel:exclude>
</camel:cipherSuitesFilter>
</camel:clientParameters>
</camel:sslContextParameters>