This is an automated email from the ASF dual-hosted git repository.
bbende pushed a commit to branch NIFI-15258
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/NIFI-15258 by this push:
new 60da16560f NIFI-15485: Include provider name when providing fqn for
secrets (#10801)
60da16560f is described below
commit 60da16560fdf9ffe2fb5356c06fb9788d4cb0dea
Author: Mark Payne <[email protected]>
AuthorDate: Thu Jan 22 09:31:17 2026 -0500
NIFI-15485: Include provider name when providing fqn for secrets (#10801)
---
.../secrets/ParameterProviderSecretProvider.java | 2 +-
.../secrets/ParameterProviderSecretsManager.java | 16 +++++++--
.../StandardConnectorConfigurationContext.java | 38 ++++++++++++++--------
3 files changed, 39 insertions(+), 17 deletions(-)
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/components/connector/secrets/ParameterProviderSecretProvider.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/components/connector/secrets/ParameterProviderSecretProvider.java
index c4d7563da0..c44d5f10fd 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/components/connector/secrets/ParameterProviderSecretProvider.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/components/connector/secrets/ParameterProviderSecretProvider.java
@@ -66,7 +66,7 @@ public class ParameterProviderSecretProvider implements
SecretProvider {
.providerName(getProviderName())
.groupName(groupName)
.name(descriptor.getName())
- .fullyQualifiedName(groupName + "." + descriptor.getName())
+ .fullyQualifiedName(getProviderName() + "." + groupName + "." +
descriptor.getName())
.description(descriptor.getDescription())
.value(parameter.getValue())
.authorizable(parameterProvider)
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/components/connector/secrets/ParameterProviderSecretsManager.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/components/connector/secrets/ParameterProviderSecretsManager.java
index e4c57c1df6..edd1348393 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/components/connector/secrets/ParameterProviderSecretsManager.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/components/connector/secrets/ParameterProviderSecretsManager.java
@@ -140,8 +140,20 @@ public class ParameterProviderSecretsManager implements
SecretsManager {
return null;
}
- // No Provider found by ID, search by Provider Name
- final String providerName = secretReference.getProviderName();
+ // No Provider found by ID, extract Provider Name so we can search by
it.
+ // If not explicitly provided, extract from FQN, if it is provided.
+ String providerName = secretReference.getProviderName();
+ if (providerName == null) {
+ final String fqn = secretReference.getFullyQualifiedName();
+ if (fqn != null) {
+ final int dotIndex = fqn.indexOf('.');
+ if (dotIndex > 0) {
+ providerName = fqn.substring(0, dotIndex);
+ }
+ }
+ }
+
+ // Search by Provider Name
if (providerName != null) {
for (final SecretProvider provider : providers) {
if (providerName.equals(provider.getProviderName())) {
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorConfigurationContext.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorConfigurationContext.java
index b601d154ed..bc7c2b9d68 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorConfigurationContext.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorConfigurationContext.java
@@ -152,17 +152,18 @@ public class StandardConnectorConfigurationContext
implements MutableConnectorCo
try {
final StepConfiguration existingConfig =
propertyConfigurations.get(stepName);
final Map<String, ConnectorValueReference> existingProperties =
existingConfig != null ? existingConfig.getPropertyValues() : new HashMap<>();
- if (Objects.equals(existingProperties,
configuration.getPropertyValues())) {
- return ConfigurationUpdateResult.NO_CHANGES;
- }
-
final Map<String, ConnectorValueReference> mergedProperties = new
HashMap<>(existingProperties);
mergedProperties.putAll(configuration.getPropertyValues());
final StepConfiguration resolvedConfig =
resolvePropertyValues(mergedProperties);
- this.propertyConfigurations.put(stepName, new
StepConfiguration(new HashMap<>(mergedProperties)));
- this.resolvedPropertyConfigurations.put(stepName, resolvedConfig);
+ final StepConfiguration updatedStepConfig = new
StepConfiguration(new HashMap<>(mergedProperties));
+ final StepConfiguration existingStepConfig =
this.propertyConfigurations.put(stepName, updatedStepConfig);
+ final StepConfiguration existingResolvedStepConfig =
this.resolvedPropertyConfigurations.put(stepName, resolvedConfig);
+
+ if (Objects.equals(existingStepConfig, updatedStepConfig) &&
Objects.equals(existingResolvedStepConfig, resolvedConfig)) {
+ return ConfigurationUpdateResult.NO_CHANGES;
+ }
return ConfigurationUpdateResult.CHANGES_MADE;
} finally {
@@ -231,6 +232,16 @@ public class StandardConnectorConfigurationContext
implements MutableConnectorCo
}
}
+ // Try to find by Fully Qualified Name prefix
+ final String fqn = secretReference.getFullyQualifiedName();
+ if (fqn != null) {
+ for (final SecretProvider provider : providers) {
+ if (fqn.startsWith(provider.getProviderName() + ".")) {
+ return provider;
+ }
+ }
+ }
+
return null;
}
@@ -238,16 +249,15 @@ public class StandardConnectorConfigurationContext
implements MutableConnectorCo
public ConfigurationUpdateResult replaceProperties(final String stepName,
final StepConfiguration configuration) {
writeLock.lock();
try {
- final StepConfiguration existingConfig =
propertyConfigurations.get(stepName);
- final Map<String, ConnectorValueReference> existingProperties =
existingConfig != null ? existingConfig.getPropertyValues() : new HashMap<>();
- if (Objects.equals(existingProperties,
configuration.getPropertyValues())) {
- return ConfigurationUpdateResult.NO_CHANGES;
- }
-
final StepConfiguration resolvedConfig =
resolvePropertyValues(configuration.getPropertyValues());
- this.propertyConfigurations.put(stepName, new
StepConfiguration(new HashMap<>(configuration.getPropertyValues())));
- this.resolvedPropertyConfigurations.put(stepName, resolvedConfig);
+ final StepConfiguration updatedStepConfig = new
StepConfiguration(new HashMap<>(configuration.getPropertyValues()));
+ final StepConfiguration existingStepConfig =
this.propertyConfigurations.put(stepName, updatedStepConfig);
+ final StepConfiguration existingResolvedStepConfig =
this.resolvedPropertyConfigurations.put(stepName, resolvedConfig);
+
+ if (Objects.equals(existingStepConfig, updatedStepConfig) &&
Objects.equals(existingResolvedStepConfig, resolvedConfig)) {
+ return ConfigurationUpdateResult.NO_CHANGES;
+ }
return ConfigurationUpdateResult.CHANGES_MADE;
} finally {