Andrea Cosentino created CAMEL-24443:
----------------------------------------

             Summary: camel-knative-http - enabling SSL without a truststore 
falls back to trusting all certificates
                 Key: CAMEL-24443
                 URL: https://issues.apache.org/jira/browse/CAMEL-24443
             Project: Camel
          Issue Type: Bug
          Components: camel-knative-http
            Reporter: Andrea Cosentino
            Assignee: Andrea Cosentino
             Fix For: 4.23.0


{{KnativeSslClientOptions.configureOptions()}} ends with:

{code:java}
if (truststorePath.isPresent()) {
    setTruststorePath(truststorePath.get());
    setTruststorePassword(truststorePassword);
} else if (trustCertPath.isPresent()) {
    setTrustCertPath(trustCertPath.get().split(","));
} else {
    trustOptions = TrustAllOptions.INSTANCE;
    setTrustOptions(trustOptions);
}
{code}

So {{camel.knative.client.ssl.enabled=true}} with no truststore or trust-cert 
path configured installs {{TrustAllOptions.INSTANCE}}, an 
{{X509ExtendedTrustManager}} that accepts every certificate. No option named 
{{trustAll}} is involved - this is what enabling SSL alone produces.

That is the opposite of the convention elsewhere in Camel: 
{{SSLContextParameters}} and the JSSE utility fall back to the JVM default 
trust anchors when no truststore is configured. Hostname verification in the 
same method already defaults to {{true}}, so the trust decision is the outlier. 
{{KnativeOidcClientOptions}} extends this class, so bearer tokens ride the same 
connection.

Proposal: fall back to the JVM default trust store, and require an explicit 
opt-in option for trust-all. Needs an upgrade-guide entry for deployments that 
relied on the fallback.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to