[
https://issues.apache.org/jira/browse/NIFI-16437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pierre Villard updated NIFI-16437:
----------------------------------
Fix Version/s: 2.13.0
Resolution: Fixed
Status: Resolved (was: Patch Available)
> Connector configuration API rejects unset asset references returned by GET
> --------------------------------------------------------------------------
>
> Key: NIFI-16437
> URL: https://issues.apache.org/jira/browse/NIFI-16437
> Project: Apache NiFi
> Issue Type: Bug
> Reporter: Pierre Villard
> Assignee: Pierre Villard
> Priority: Major
> Fix For: 2.13.0
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> Connector configuration authorization rejects unset asset properties
> represented as ASSET_REFERENCE values with no asset identifiers.
> When an optional asset property is unset, NiFi can store it as an
> AssetReference with an empty identifier set. The Connector DTO factory
> serializes this value as an ASSET_REFERENCE with an empty assetReferences
> list.
> If a client retrieves the configuration step and submits the returned payload
> unchanged through the configuration-step PUT or verify-config endpoint,
> AuthorizeConnectorConfigReferences.authorizeAssetReferences rejects the
> request with:
> {code:java}
> Asset references must be specified when value type is ASSET_REFERENCE{code}
> This means that a Connector configuration returned by NiFi cannot always be
> submitted back to NiFi unchanged.
> Other Connector configuration components already treat an empty
> AssetReference as an unset property:
> * StandardConnectorDAO converts a null or empty assetReferences list to an
> empty identifier set.
> * StandardConnectorNode allows an AssetReference with no identifiers as an
> unset value.
> * Connector migration can intentionally produce an empty AssetReference when
> a
> source asset is unavailable.
> The authorization check should be consistent with these semantics. A null or
> empty asset-reference collection contains no resource requiring authorization
> and should therefore be treated as a no-op. Connector WRITE authorization
> must still be required.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)