Andrea Cosentino created CAMEL-24891:
----------------------------------------

             Summary: camel-debezium - generated password options are not 
marked as secret
                 Key: CAMEL-24891
                 URL: https://issues.apache.org/jira/browse/CAMEL-24891
             Project: Camel
          Issue Type: Bug
          Components: camel-debezium
            Reporter: Andrea Cosentino
            Assignee: Andrea Cosentino


h3. Summary

None of the password options generated for the Debezium connectors is marked 
{{secret = true}}, so
the catalog advertises them as ordinary strings.

h3. Details

{{ConnectorConfigGenerator.setClassFields()}} emits {{label}}, {{defaultValue}} 
and {{javaType}} on
{{@UriParam}} and {{@Metadata(required = true)}} where applicable, but never 
{{secret}}:

{code:java}
final Annotation annotation = field.addAnnotation(UriParam.class)
        .setLiteralValue("label", "LABEL_NAME");
...
if (fieldConfig.isRequired()) {
    field.addAnnotation(Metadata.class)
            .setLiteralValue("required", "true");
}
{code}

Affected options across the six connectors: {{databasePassword}} (db2, mysql, 
oracle, postgres,
sqlserver), {{mongodbPassword}}, {{databaseSslTruststorePassword}} and
{{databaseSslKeystorePassword}} (mysql), {{databaseSslpassword}} (postgres). 
All of them carry
{{"secret": false}} in the generated catalog JSON.

h3. Scope

This is a catalog/metadata gap, not a log leak: {{URISupport.ALL_SECRETS}} 
matches any query
parameter whose *key contains* a sensitive keyword, so 
{{?databasePassword=...}} is already redacted
in logs and JMX. What is wrong is what the catalog tells tooling - Kaoto, the 
VS Code extension and
JBang completion render these as plain text fields, and the generated option 
tables do not flag
them. CLAUDE.md asks for {{secret = true}} on passwords, tokens and API keys.

h3. Proposed fix

{{ConnectorConfigField}} already wraps the connector's {{ConfigDef.ConfigKey}} 
and already switches
on {{ConfigDef.Type.PASSWORD}} when mapping the Java type, so the generator can 
set
{{secret = true}} from the same signal. Regenerating the six connector modules 
then flips
{{"secret": true}} in the catalog.

----
_Reported by Claude Code on behalf of oscerd (Andrea Cosentino)._



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

Reply via email to