[
https://issues.apache.org/jira/browse/CAMEL-25964?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-25964.
---------------------------------
Resolution: Fixed
> camel-vertx - VertxHelper does not apply standalone TrustManager from
> SSLContextParameters
> ------------------------------------------------------------------------------------------
>
> Key: CAMEL-25964
> URL: https://issues.apache.org/jira/browse/CAMEL-25964
> Project: Camel
> Issue Type: Bug
> Components: camel-vertx
> Reporter: Andrea Cosentino
> Assignee: Andrea Cosentino
> Priority: Major
> Fix For: 4.18.6, 4.22.3, 4.24.0
>
>
> h3. Current behaviour
> In
> {{org.apache.camel.component.vertx.common.VertxHelper.setupSSLOptions(...)}}
> (camel-vertx-common), Vert.x {{TCPSSLOptions}} are configured from
> {{SSLContextParameters}}.
> When {{TrustManagersParameters}} is configured with a standalone
> {{TrustManager}} via {{setTrustManager(...)}} without a {{KeyStore}},
> {{createTrustManagerFactory(...)}} returns {{null}} because no keystore is
> present.
> {{VertxHelper}} then checks only whether:
> {code:java}
> if (sslContextParameters.getTrustManagers() != null &&
> sslContextParameters.getTrustManagers().getTrustManager() ==
> TrustAllTrustManager.INSTANCE) {
>
> tcpsslOptions.setTrustOptions(TrustOptions.wrap(TrustAllTrustManager.INSTANCE));
> }
> {code}
> Any other standalone {{TrustManager}} instance (such as a custom or pinned
> trust manager) is not passed to {{tcpsslOptions.setTrustOptions(...)}}. As a
> result, {{tcpsslOptions.getTrustOptions()}} remains {{null}}, and Vert.x
> falls back to its default trust configuration.
> h3. Expected behaviour
> When {{TrustManagersParameters.getTrustManager()}} is configured with any
> {{TrustManager}}, {{VertxHelper}} should wrap and apply it using
> {{TrustOptions.wrap(trustManager)}}.
> When no standalone {{TrustManager}} is supplied,
> {{createTrustManagerFactory(...)}} should continue to be used to configure
> {{TrustManagerFactoryOptions}} from the configured keystore.
> h3. Change
> * {{org.apache.camel.component.vertx.common.VertxHelper}}: Check whether
> {{sslContextParameters.getTrustManagers() != null &&
> sslContextParameters.getTrustManagers().getTrustManager() != null}}. If
> present, call
> {{tcpsslOptions.setTrustOptions(TrustOptions.wrap(trustManager))}}.
> Otherwise, call {{createTrustManagerFactory(camelContext,
> sslContextParameters)}} as before.
> * Add unit tests in camel-vertx-common to verify standalone {{TrustManager}}
> instances are applied to {{TCPSSLOptions}}.
> h3. Tests
> * Add {{VertxHelperTest}} in {{camel-vertx-common}} to test:
> - Standalone custom {{TrustManager}} is wrapped and applied.
> - {{TrustAllTrustManager.INSTANCE}} is wrapped and applied.
> - KeyStore-based {{TrustManagerFactory}} is applied when no standalone
> manager is set.
> * Verify existing Vert.x component tests remain green.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)