[ 
https://issues.apache.org/jira/browse/NIFI-15306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18044227#comment-18044227
 ] 

Chris Sampson commented on NIFI-15306:
--------------------------------------

For the concern about property values being output to the UI/logs, 
users/administrators are encouraged to use Property Providers for sensitive (or 
environment specific) protest cakes, which would mean the output value simply 
prints the property name rather than the actual value.

> Property migration does not happen when creating Reporting Tasks and global 
> Controller Services via NiFi Toolkit
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: NIFI-15306
>                 URL: https://issues.apache.org/jira/browse/NIFI-15306
>             Project: Apache NiFi
>          Issue Type: Bug
>    Affects Versions: 2.7.0
>            Reporter: Chris Sampson
>            Priority: Major
>
> Several properties in Site-to-Site Reporting Tasks and Controller Services 
> (e.g. {{StandardSSLControllerService}}) have recently been renamed as part of 
> an effort to harminise property descriptor names with their display names.
> A set of property migrations have been included as part of this using the 
> {{migrateProperties}} framework method. However, it seems that these methods 
> are not being called for global-level components such as Reporting Tasks and 
> Controller Services when they are created via the NiFi API (e.g. using 
> Toolkit's {{create-reporting-task}} method) with a JSON definition that has 
> not been updated to match the renamed properties.
> For example:
> {code:json}
> {
>     "component": {
>         "name": "Registry Client SSL Context Service",
>         "type": "org.apache.nifi.ssl.StandardSSLContextService",
>         "properties": {
>             "Keystore Filename": "keystore.p12",
>             "Keystore Password": "my password",
>             "key-password": "my password",
>             "Keystore Type": "PKCS12",
>             "Truststore Filename": "trust.p12",
>             "Truststore Password": "another password",
>             "Truststore Type": "PKCS12",
>             "SSL Protocol": "TLS"
>         }
>     }
> }
> {code}
> Results in 2 unknown properties of {{key-password}} and {{SSL Protocol}} 
> being present in the created Controller Service, with the component being 
> invalid and throwing errors such as:
> {quote}
> 'key-password' not valid with value 'my password', property does not exist
> {quote}
> Similarly, for:
> {code:json}
> {
>     "component": {
>         "name": "s2s Bulletin Report",
>         "type": "org.apache.nifi.reporting.SiteToSiteBulletinReportingTask",
>         "properties": {
>             "Destination URL": "https://nifi:8443/nifi";,
>             "Input Port Name": "BulletinData",
>             "SSL Context Service": "{uuid}",
>             "Instance URL": "https://${hostname(true)}:8443/nifi",
>             "record-writer": "{uuid}"
>         }
>     }
> }
> {code}
> Creates an invalid Reporting Task due to:
> {quote}
> 'record-writer' not valid with value '{uuid}', property does not exist
> {quote}
> This makes the changes to these properties a breaking change for anyone with 
> existing component definitions to be installed into a NiFi cluster. 
> Additionally, the reporting of the property values has the potential to leak 
> sensitive details, such as key passwords (NiFi doesn't recognise 
> {{key-password}} any longer, so doesn't realise it's a sensitive value, and 
> so reports the value in the component validation error).



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

Reply via email to