You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by pv...@apache.org on 2023/02/16 17:16:26 UTC
[nifi] branch main updated: NIFI-11188 Removed ProcessContext encrypt and decrypt methods
This is an automated email from the ASF dual-hosted git repository.
pvillard pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new 284804ac42 NIFI-11188 Removed ProcessContext encrypt and decrypt methods
284804ac42 is described below
commit 284804ac424557d15ee8cc6ac4c9d5b862e1aafa
Author: exceptionfactory <ex...@apache.org>
AuthorDate: Wed Feb 15 16:28:08 2023 -0600
NIFI-11188 Removed ProcessContext encrypt and decrypt methods
- Removed unnecessary references to PropertyEncryptor from multiple framework components
Signed-off-by: Pierre Villard <pi...@gmail.com>
This closes #6962.
---
.../org/apache/nifi/processor/ProcessContext.java | 22 ----
.../org/apache/nifi/util/MockProcessContext.java | 13 ---
.../apache/nifi/util/TestMockProcessContext.java | 11 --
.../scheduling/ConnectableProcessContext.java | 22 +---
.../apache/nifi/groups/StandardProcessGroup.java | 6 +-
.../nifi/processor/StandardProcessContext.java | 91 ++++++++-------
.../org/apache/nifi/controller/FlowController.java | 4 +-
.../nifi/controller/StandardFlowSnippet.java | 2 +-
.../nifi/controller/StandardReloadComponent.java | 2 +-
.../scheduling/EventDrivenSchedulingAgent.java | 9 +-
.../scheduling/StandardProcessScheduler.java | 8 +-
.../nifi/controller/tasks/ConnectableTask.java | 7 +-
.../serialization/FlowFromDOMFactoryTest.groovy | 103 -----------------
.../fingerprint/FingerprintFactoryGroovyIT.groovy | 122 ---------------------
.../FingerprintFactoryGroovyTest.groovy | 93 ----------------
.../nifi/controller/StandardProcessorNodeIT.java | 4 +-
.../nifi/integration/parameters/ParametersIT.java | 2 +-
.../org/apache/nifi/mock/MockProcessContext.java | 10 --
.../nifi/web/dao/impl/StandardProcessorDAO.java | 4 +-
.../stateless/engine/StatelessFlowManager.java | 2 +-
.../engine/StatelessProcessContextFactory.java | 10 +-
.../stateless/engine/StatelessReloadComponent.java | 4 +-
.../flow/StandardStatelessDataflowFactory.java | 2 +-
23 files changed, 78 insertions(+), 475 deletions(-)
diff --git a/nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java b/nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java
index cbb67574c7..92b7e57a7e 100644
--- a/nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java
+++ b/nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java
@@ -95,28 +95,6 @@ public interface ProcessContext extends PropertyContext, ClusterContext {
*/
Map<PropertyDescriptor, String> getProperties();
- /**
- * Encrypts the given value using the password provided in the NiFi
- * Properties
- *
- * @deprecated Processors should not depend on framework encryption operations
- * @param unencrypted plaintext value
- * @return encrypted value
- */
- @Deprecated
- String encrypt(String unencrypted);
-
- /**
- * Decrypts the given value using the password provided in the NiFi
- * Properties
- *
- * @deprecated Processors should not depend on framework encryption operations
- * @param encrypted the encrypted value
- * @return the plaintext value
- */
- @Deprecated
- String decrypt(String encrypted);
-
/**
* @return a {@code ControllerServiceLookup} that can be used to obtain a
* Controller Service
diff --git a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java
index daa8ceee52..a63951f8c7 100644
--- a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java
+++ b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java
@@ -416,19 +416,6 @@ public class MockProcessContext extends MockControllerServiceLookup implements P
}
}
- @Override
- public String encrypt(final String unencrypted) {
- return "enc{" + unencrypted + "}";
- }
-
- @Override
- public String decrypt(final String encrypted) {
- if (encrypted.startsWith("enc{") && encrypted.endsWith("}")) {
- return encrypted.substring(4, encrypted.length() - 1);
- }
- return encrypted;
- }
-
public void setValidateExpressionUsage(final boolean validate) {
allowExpressionValidation = validate;
}
diff --git a/nifi-mock/src/test/java/org/apache/nifi/util/TestMockProcessContext.java b/nifi-mock/src/test/java/org/apache/nifi/util/TestMockProcessContext.java
index 241394ae73..22ac16972c 100644
--- a/nifi-mock/src/test/java/org/apache/nifi/util/TestMockProcessContext.java
+++ b/nifi-mock/src/test/java/org/apache/nifi/util/TestMockProcessContext.java
@@ -74,17 +74,6 @@ public class TestMockProcessContext {
assertEquals(2, proc.getUpdateCount(DummyProcessor.DEFAULTED_PROP));
}
- @Test
- public void testFakeEncryptionAndDecryption() {
- final DummyProcessor proc = new DummyProcessor();
- final MockProcessContext context = new MockProcessContext(proc);
- String subject = "foo";
- String encrypted = context.encrypt(subject);
- assertEquals(encrypted, "enc{foo}");
- String decrypted = context.decrypt(encrypted);
- assertEquals(decrypted, subject);
- }
-
private static class DummyProcessor extends AbstractProcessor {
static final PropertyDescriptor REQUIRED_PROP = new PropertyDescriptor.Builder()
.name("required")
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/scheduling/ConnectableProcessContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/scheduling/ConnectableProcessContext.java
index 40cf69d522..d9f924d79f 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/scheduling/ConnectableProcessContext.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/scheduling/ConnectableProcessContext.java
@@ -25,9 +25,6 @@ import org.apache.nifi.connectable.Connectable;
import org.apache.nifi.connectable.Connection;
import org.apache.nifi.controller.ControllerService;
import org.apache.nifi.controller.ControllerServiceLookup;
-import org.apache.nifi.deprecation.log.DeprecationLogger;
-import org.apache.nifi.deprecation.log.DeprecationLoggerFactory;
-import org.apache.nifi.encrypt.PropertyEncryptor;
import org.apache.nifi.expression.AttributeValueDecorator;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.processor.DataUnit;
@@ -51,16 +48,11 @@ import java.util.concurrent.TimeUnit;
public class ConnectableProcessContext implements ProcessContext {
private final Connectable connectable;
- private final PropertyEncryptor propertyEncryptor;
private final StateManager stateManager;
- private final DeprecationLogger deprecationLogger;
-
- public ConnectableProcessContext(final Connectable connectable, final PropertyEncryptor propertyEncryptor, final StateManager stateManager) {
+ public ConnectableProcessContext(final Connectable connectable, final StateManager stateManager) {
this.connectable = connectable;
- this.propertyEncryptor = propertyEncryptor;
this.stateManager = stateManager;
- this.deprecationLogger = DeprecationLoggerFactory.getLogger(connectable.getClass());
}
@Override
@@ -227,18 +219,6 @@ public class ConnectableProcessContext implements ProcessContext {
return new HashMap<>();
}
- @Override
- public String decrypt(String encrypted) {
- deprecationLogger.warn("ProcessContext.decrypt() should be replaced an alternative implementation");
- return propertyEncryptor.decrypt(encrypted);
- }
-
- @Override
- public String encrypt(String unencrypted) {
- deprecationLogger.warn("ProcessContext.encrypt() should be replaced an alternative implementation");
- return propertyEncryptor.encrypt(unencrypted);
- }
-
@Override
public ControllerServiceLookup getControllerServiceLookup() {
return null;
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java
index 514a2a0ca2..1206256073 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java
@@ -557,7 +557,7 @@ public final class StandardProcessGroup implements ProcessGroup {
private void shutdown(final ProcessGroup procGroup) {
for (final ProcessorNode node : procGroup.getProcessors()) {
try (final NarCloseable x = NarCloseable.withComponentNarLoader(extensionManager, node.getProcessor().getClass(), node.getIdentifier())) {
- final StandardProcessContext processContext = new StandardProcessContext(node, controllerServiceProvider, encryptor,
+ final StandardProcessContext processContext = new StandardProcessContext(node, controllerServiceProvider,
getStateManager(node.getIdentifier()), () -> false, nodeTypeProvider);
ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnShutdown.class, node.getProcessor(), processContext);
}
@@ -1124,7 +1124,7 @@ public final class StandardProcessGroup implements ProcessGroup {
}
try (final NarCloseable x = NarCloseable.withComponentNarLoader(extensionManager, processor.getProcessor().getClass(), processor.getIdentifier())) {
- final StandardProcessContext processContext = new StandardProcessContext(processor, controllerServiceProvider, encryptor,
+ final StandardProcessContext processContext = new StandardProcessContext(processor, controllerServiceProvider,
getStateManager(processor.getIdentifier()), () -> false, nodeTypeProvider);
ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnRemoved.class, processor.getProcessor(), processContext);
} catch (final Exception e) {
@@ -3953,7 +3953,7 @@ public final class StandardProcessGroup implements ProcessGroup {
}
private ProcessContext createProcessContext(final ProcessorNode processorNode) {
- return new StandardProcessContext(processorNode, controllerServiceProvider, encryptor,
+ return new StandardProcessContext(processorNode, controllerServiceProvider,
stateManagerProvider.getStateManager(processorNode.getIdentifier()), () -> false, nodeTypeProvider);
}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/processor/StandardProcessContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/processor/StandardProcessContext.java
index 3a4f793a8f..8df4f1b6ba 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/processor/StandardProcessContext.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/processor/StandardProcessContext.java
@@ -36,9 +36,6 @@ import org.apache.nifi.controller.PropertyConfiguration;
import org.apache.nifi.controller.PropertyConfigurationMapper;
import org.apache.nifi.controller.lifecycle.TaskTermination;
import org.apache.nifi.controller.service.ControllerServiceProvider;
-import org.apache.nifi.deprecation.log.DeprecationLogger;
-import org.apache.nifi.deprecation.log.DeprecationLoggerFactory;
-import org.apache.nifi.encrypt.PropertyEncryptor;
import org.apache.nifi.parameter.ParameterLookup;
import org.apache.nifi.processor.exception.TerminatedTaskException;
import org.apache.nifi.scheduling.ExecutionNode;
@@ -58,43 +55,67 @@ public class StandardProcessContext implements ProcessContext, ControllerService
private final ProcessorNode procNode;
private final ControllerServiceProvider controllerServiceProvider;
private final Map<PropertyDescriptor, PreparedQuery> preparedQueries;
- private final PropertyEncryptor propertyEncryptor;
private final StateManager stateManager;
private final TaskTermination taskTermination;
private final NodeTypeProvider nodeTypeProvider;
private final Map<PropertyDescriptor, String> properties;
private final String annotationData;
- private final DeprecationLogger deprecationLogger;
-
- public StandardProcessContext(final ProcessorNode processorNode, final ControllerServiceProvider controllerServiceProvider, final PropertyEncryptor propertyEncryptor,
- final StateManager stateManager, final TaskTermination taskTermination, final NodeTypeProvider nodeTypeProvider) {
-
- this(processorNode, controllerServiceProvider, propertyEncryptor, stateManager, taskTermination, nodeTypeProvider,
- processorNode.getEffectivePropertyValues(), processorNode.getAnnotationData());
- }
-
- public StandardProcessContext(final ProcessorNode processorNode, final Map<String, String> propertiesOverride, final String annotationDataOverride, final ParameterLookup parameterLookup,
- final ControllerServiceProvider controllerServiceProvider, final PropertyEncryptor propertyEncryptor,
- final StateManager stateManager, final TaskTermination taskTermination, final NodeTypeProvider nodeTypeProvider) {
-
- this(processorNode, controllerServiceProvider, propertyEncryptor, stateManager, taskTermination, nodeTypeProvider,
- resolvePropertyValues(processorNode, parameterLookup, propertiesOverride), annotationDataOverride);
- }
-
- public StandardProcessContext(final ProcessorNode processorNode, final ControllerServiceProvider controllerServiceProvider, final PropertyEncryptor propertyEncryptor,
- final StateManager stateManager, final TaskTermination taskTermination, final NodeTypeProvider nodeTypeProvider,
- final Map<PropertyDescriptor, String> propertyValues, final String annotationData) {
+ public StandardProcessContext(
+ final ProcessorNode processorNode,
+ final ControllerServiceProvider controllerServiceProvider,
+ final StateManager stateManager,
+ final TaskTermination taskTermination,
+ final NodeTypeProvider nodeTypeProvider
+ ) {
+
+ this(
+ processorNode,
+ controllerServiceProvider,
+ stateManager,
+ taskTermination,
+ nodeTypeProvider,
+ processorNode.getEffectivePropertyValues(),
+ processorNode.getAnnotationData()
+ );
+ }
+
+ public StandardProcessContext(
+ final ProcessorNode processorNode,
+ final Map<String, String> propertiesOverride,
+ final String annotationDataOverride,
+ final ParameterLookup parameterLookup,
+ final ControllerServiceProvider controllerServiceProvider,
+ final StateManager stateManager,
+ final TaskTermination taskTermination,
+ final NodeTypeProvider nodeTypeProvider
+ ) {
+ this(
+ processorNode,
+ controllerServiceProvider,
+ stateManager,
+ taskTermination,
+ nodeTypeProvider,
+ resolvePropertyValues(processorNode, parameterLookup, propertiesOverride),
+ annotationDataOverride
+ );
+ }
+
+ public StandardProcessContext(
+ final ProcessorNode processorNode,
+ final ControllerServiceProvider controllerServiceProvider,
+ final StateManager stateManager,
+ final TaskTermination taskTermination,
+ final NodeTypeProvider nodeTypeProvider,
+ final Map<PropertyDescriptor, String> propertyValues,
+ final String annotationData
+ ) {
this.procNode = processorNode;
this.controllerServiceProvider = controllerServiceProvider;
- this.propertyEncryptor = propertyEncryptor;
this.stateManager = stateManager;
this.taskTermination = taskTermination;
this.nodeTypeProvider = nodeTypeProvider;
this.annotationData = annotationData;
- final Class<?> componentClass = processorNode.getComponentClass();
- final Class<?> loggerClass = componentClass == null ? getClass() : componentClass;
- this.deprecationLogger = DeprecationLoggerFactory.getLogger(loggerClass);
properties = Collections.unmodifiableMap(propertyValues);
@@ -230,20 +251,6 @@ public class StandardProcessContext implements ProcessContext, ControllerService
return propValueMap;
}
- @Override
- public String encrypt(final String unencrypted) {
- verifyTaskActive();
- deprecationLogger.warn("ProcessContext.encrypt() should be replaced an alternative implementation");
- return propertyEncryptor.encrypt(unencrypted);
- }
-
- @Override
- public String decrypt(final String encrypted) {
- verifyTaskActive();
- deprecationLogger.warn("ProcessContext.decrypt() should be replaced an alternative implementation");
- return propertyEncryptor.decrypt(encrypted);
- }
-
@Override
public Set<String> getControllerServiceIdentifiers(final Class<? extends ControllerService> serviceType) {
verifyTaskActive();
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java
index ce93d4a474..3e3c37e2b6 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java
@@ -549,7 +549,7 @@ public class FlowController implements ReportingTaskProvider, Authorizable, Node
eventDrivenSchedulingAgent = new EventDrivenSchedulingAgent(
eventDrivenEngineRef.get(), controllerServiceProvider, stateManagerProvider, eventDrivenWorkerQueue,
- repositoryContextFactory, maxEventDrivenThreads.get(), encryptor, extensionManager, this);
+ repositoryContextFactory, maxEventDrivenThreads.get(), extensionManager, this);
processScheduler.setSchedulingAgent(SchedulingStrategy.EVENT_DRIVEN, eventDrivenSchedulingAgent);
final QuartzSchedulingAgent quartzSchedulingAgent = new QuartzSchedulingAgent(this, timerDrivenEngineRef.get(), repositoryContextFactory);
@@ -983,7 +983,7 @@ public class FlowController implements ReportingTaskProvider, Authorizable, Node
for (final ProcessorNode procNode : flowManager.getRootGroup().findAllProcessors()) {
final Processor processor = procNode.getProcessor();
try (final NarCloseable nc = NarCloseable.withComponentNarLoader(extensionManager, processor.getClass(), processor.getIdentifier())) {
- final StandardProcessContext processContext = new StandardProcessContext(procNode, controllerServiceProvider, encryptor,
+ final StandardProcessContext processContext = new StandardProcessContext(procNode, controllerServiceProvider,
getStateManagerProvider().getStateManager(processor.getIdentifier()), () -> false, this);
ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnConfigurationRestored.class, processor, processContext);
}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSnippet.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSnippet.java
index e7eb0fc5c4..c1ee7ceb0b 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSnippet.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSnippet.java
@@ -435,7 +435,7 @@ public class StandardFlowSnippet implements FlowSnippet {
}
// Notify the processor node that the configuration (properties, e.g.) has been restored
- final StandardProcessContext processContext = new StandardProcessContext(procNode, flowController.getControllerServiceProvider(), flowController.getEncryptor(),
+ final StandardProcessContext processContext = new StandardProcessContext(procNode, flowController.getControllerServiceProvider(),
flowController.getStateManagerProvider().getStateManager(procNode.getProcessor().getIdentifier()), () -> false, flowController);
procNode.onConfigurationRestored(processContext);
} finally {
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardReloadComponent.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardReloadComponent.java
index ad34a5da22..1f4f24f913 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardReloadComponent.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardReloadComponent.java
@@ -74,7 +74,7 @@ public class StandardReloadComponent implements ReloadComponent {
final StateManager stateManager = flowController.getStateManagerProvider().getStateManager(id);
final StandardProcessContext processContext = new StandardProcessContext(existingNode, flowController.getControllerServiceProvider(),
- flowController.getEncryptor(), stateManager, () -> false, flowController);
+ stateManager, () -> false, flowController);
// call OnRemoved for the existing processor using the previous instance class loader
try (final NarCloseable x = NarCloseable.withComponentNarLoader(existingInstanceClassLoader)) {
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/EventDrivenSchedulingAgent.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/EventDrivenSchedulingAgent.java
index 15ad015e4c..c5ca6611ef 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/EventDrivenSchedulingAgent.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/EventDrivenSchedulingAgent.java
@@ -36,7 +36,6 @@ import org.apache.nifi.controller.repository.metrics.NopPerformanceTracker;
import org.apache.nifi.controller.repository.metrics.StandardFlowFileEvent;
import org.apache.nifi.controller.repository.scheduling.ConnectableProcessContext;
import org.apache.nifi.controller.service.ControllerServiceProvider;
-import org.apache.nifi.encrypt.PropertyEncryptor;
import org.apache.nifi.engine.FlowEngine;
import org.apache.nifi.logging.ComponentLog;
import org.apache.nifi.nar.ExtensionManager;
@@ -70,7 +69,6 @@ public class EventDrivenSchedulingAgent extends AbstractSchedulingAgent {
private final RepositoryContextFactory contextFactory;
private final AtomicInteger maxThreadCount;
private final AtomicInteger activeThreadCount = new AtomicInteger(0);
- private final PropertyEncryptor encryptor;
private final ExtensionManager extensionManager;
private final NodeTypeProvider nodeTypeProvider;
@@ -81,14 +79,13 @@ public class EventDrivenSchedulingAgent extends AbstractSchedulingAgent {
public EventDrivenSchedulingAgent(final FlowEngine flowEngine, final ControllerServiceProvider serviceProvider, final StateManagerProvider stateManagerProvider,
final EventDrivenWorkerQueue workerQueue, final RepositoryContextFactory contextFactory, final int maxThreadCount,
- final PropertyEncryptor encryptor, final ExtensionManager extensionManager, final NodeTypeProvider nodeTypeProvider) {
+ final ExtensionManager extensionManager, final NodeTypeProvider nodeTypeProvider) {
super(flowEngine);
this.serviceProvider = serviceProvider;
this.stateManagerProvider = stateManagerProvider;
this.workerQueue = workerQueue;
this.contextFactory = contextFactory;
this.maxThreadCount = new AtomicInteger(maxThreadCount);
- this.encryptor = encryptor;
this.extensionManager = extensionManager;
this.nodeTypeProvider = nodeTypeProvider;
@@ -218,7 +215,7 @@ public class EventDrivenSchedulingAgent extends AbstractSchedulingAgent {
final ProcessorNode procNode = (ProcessorNode) connectable;
final StateManager stateManager = new TaskTerminationAwareStateManager(getStateManager(connectable.getIdentifier()), scheduleState::isTerminated);
final StandardProcessContext standardProcessContext = new StandardProcessContext(
- procNode, serviceProvider, encryptor, stateManager, scheduleState::isTerminated, nodeTypeProvider);
+ procNode, serviceProvider, stateManager, scheduleState::isTerminated, nodeTypeProvider);
final long runNanos = procNode.getRunDuration(TimeUnit.NANOSECONDS);
final ProcessSessionFactory sessionFactory;
@@ -295,7 +292,7 @@ public class EventDrivenSchedulingAgent extends AbstractSchedulingAgent {
} else {
final ProcessSessionFactory sessionFactory = new StandardProcessSessionFactory(context, scheduleState::isTerminated, new NopPerformanceTracker());
final ActiveProcessSessionFactory activeSessionFactory = new WeakHashMapProcessSessionFactory(sessionFactory);
- final ConnectableProcessContext connectableProcessContext = new ConnectableProcessContext(connectable, encryptor, getStateManager(connectable.getIdentifier()));
+ final ConnectableProcessContext connectableProcessContext = new ConnectableProcessContext(connectable, getStateManager(connectable.getIdentifier()));
trigger(connectable, scheduleState, connectableProcessContext, activeSessionFactory);
// See explanation above for the ProcessorNode as to why we do this.
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java
index a66b4078a3..14019dca2d 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java
@@ -333,7 +333,7 @@ public final class StandardProcessScheduler implements ProcessScheduler {
final LifecycleState lifecycleState = getLifecycleState(requireNonNull(procNode), true);
final Supplier<ProcessContext> processContextFactory = () -> new StandardProcessContext(procNode, getControllerServiceProvider(),
- flowController.getEncryptor(), getStateManager(procNode.getIdentifier()), lifecycleState::isTerminated, flowController);
+ getStateManager(procNode.getIdentifier()), lifecycleState::isTerminated, flowController);
final CompletableFuture<Void> future = new CompletableFuture<>();
final SchedulingAgentCallback callback = new SchedulingAgentCallback() {
@@ -373,7 +373,7 @@ public final class StandardProcessScheduler implements ProcessScheduler {
final LifecycleState lifecycleState = getLifecycleState(requireNonNull(procNode), true);
final Supplier<ProcessContext> processContextFactory = () -> new StandardProcessContext(procNode, getControllerServiceProvider(),
- flowController.getEncryptor(), getStateManager(procNode.getIdentifier()), lifecycleState::isTerminated, flowController);
+ getStateManager(procNode.getIdentifier()), lifecycleState::isTerminated, flowController);
final CompletableFuture<Void> future = new CompletableFuture<>();
final SchedulingAgentCallback callback = new SchedulingAgentCallback() {
@@ -414,7 +414,7 @@ public final class StandardProcessScheduler implements ProcessScheduler {
final LifecycleState lifecycleState = getLifecycleState(procNode, false);
StandardProcessContext processContext = new StandardProcessContext(procNode, getControllerServiceProvider(),
- flowController.getEncryptor(), getStateManager(procNode.getIdentifier()), lifecycleState::isTerminated, flowController);
+ getStateManager(procNode.getIdentifier()), lifecycleState::isTerminated, flowController);
LOG.info("Stopping {}", procNode);
return procNode.stop(this, this.componentLifeCycleThreadPool, processContext, getSchedulingAgent(procNode), lifecycleState);
@@ -563,7 +563,7 @@ public final class StandardProcessScheduler implements ProcessScheduler {
getSchedulingAgent(connectable).unschedule(connectable, state);
if (!state.isScheduled() && state.getActiveThreadCount() == 0 && state.mustCallOnStoppedMethods()) {
- final ConnectableProcessContext processContext = new ConnectableProcessContext(connectable, flowController.getEncryptor(), getStateManager(connectable.getIdentifier()));
+ final ConnectableProcessContext processContext = new ConnectableProcessContext(connectable, getStateManager(connectable.getIdentifier()));
try (final NarCloseable x = NarCloseable.withComponentNarLoader(flowController.getExtensionManager(), connectable.getClass(), connectable.getIdentifier())) {
ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnStopped.class, connectable, processContext);
}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ConnectableTask.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ConnectableTask.java
index 573536f834..b9245616e7 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ConnectableTask.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ConnectableTask.java
@@ -39,7 +39,6 @@ import org.apache.nifi.controller.repository.scheduling.ConnectableProcessContex
import org.apache.nifi.controller.scheduling.LifecycleState;
import org.apache.nifi.controller.scheduling.RepositoryContextFactory;
import org.apache.nifi.controller.scheduling.SchedulingAgent;
-import org.apache.nifi.encrypt.PropertyEncryptor;
import org.apache.nifi.logging.ComponentLog;
import org.apache.nifi.nar.NarCloseable;
import org.apache.nifi.processor.ProcessContext;
@@ -88,14 +87,12 @@ public class ConnectableTask {
this.flowController = flowController;
this.threadMXBean = ManagementFactory.getThreadMXBean();
- final PropertyEncryptor encryptor = flowController.getEncryptor();
-
final StateManager stateManager = new TaskTerminationAwareStateManager(flowController.getStateManagerProvider().getStateManager(connectable.getIdentifier()), scheduleState::isTerminated);
if (connectable instanceof ProcessorNode) {
processContext = new StandardProcessContext(
- (ProcessorNode) connectable, flowController.getControllerServiceProvider(), encryptor, stateManager, scheduleState::isTerminated, flowController);
+ (ProcessorNode) connectable, flowController.getControllerServiceProvider(), stateManager, scheduleState::isTerminated, flowController);
} else {
- processContext = new ConnectableProcessContext(connectable, encryptor, stateManager);
+ processContext = new ConnectableProcessContext(connectable, stateManager);
}
repositoryContext = contextFactory.newProcessContext(connectable, new AtomicLong(0L));
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/groovy/org/apache/nifi/controller/serialization/FlowFromDOMFactoryTest.groovy b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/groovy/org/apache/nifi/controller/serialization/FlowFromDOMFactoryTest.groovy
deleted file mode 100644
index af39f51903..0000000000
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/groovy/org/apache/nifi/controller/serialization/FlowFromDOMFactoryTest.groovy
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.controller.serialization
-
-import org.apache.nifi.encrypt.EncryptionException
-import org.apache.nifi.encrypt.PropertyEncryptor
-import org.junit.jupiter.api.BeforeAll
-import org.junit.jupiter.api.Test
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-
-import static groovy.test.GroovyAssert.shouldFail
-
-import static org.junit.jupiter.api.Assertions.assertEquals
-import static org.junit.jupiter.api.Assertions.assertThrows
-import static org.junit.jupiter.api.Assertions.assertTrue
-
-class FlowFromDOMFactoryTest {
- private static final Logger logger = LoggerFactory.getLogger(FlowFromDOMFactoryTest.class)
-
- @BeforeAll
- static void setUpOnce() throws Exception {
- logger.metaClass.methodMissing = { String name, args ->
- logger.info("[${name?.toUpperCase()}] ${(args as List).join(" ")}")
- }
- }
-
- @Test
- void testShouldDecryptSensitiveFlowValue() throws Exception {
- // Arrange
- final String property = "property"
- String wrappedProperty = "enc{${property}}"
-
- PropertyEncryptor flowEncryptor = createEncryptor()
-
- // Act
- String recovered = FlowFromDOMFactory.decrypt(wrappedProperty, flowEncryptor)
- logger.info("Recovered: ${recovered}")
-
- // Assert
- assertEquals(property, recovered)
- }
-
- @Test
- void testShouldProvideBetterErrorMessageOnDecryptionFailure() throws Exception {
- // Arrange
- final String property = "property"
- String wrappedProperty = "enc{${property}}"
-
- PropertyEncryptor flowEncryptor = createExceptionEncryptor()
-
- // Act
- EncryptionException ee = assertThrows(EncryptionException.class,
- () -> FlowFromDOMFactory.decrypt(wrappedProperty, flowEncryptor))
- logger.expected(ee.getMessage())
-
- // Assert
- assertTrue(ee.getMessage().contains("Check that the nifi.sensitive.props.key value " +
- "in nifi.properties matches the value used to encrypt the flow.xml.gz file"))
- }
-
- private PropertyEncryptor createEncryptor() {
- return new PropertyEncryptor() {
- @Override
- String encrypt(String property) {
- return property;
- }
-
- @Override
- String decrypt(String encryptedProperty) {
- return encryptedProperty;
- }
- };
- }
-
- private PropertyEncryptor createExceptionEncryptor() {
- return new PropertyEncryptor() {
- @Override
- String encrypt(String property) {
- return property;
- }
-
- @Override
- String decrypt(String encryptedProperty) {
- throw new EncryptionException("Failed")
- }
- };
- }
-}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/groovy/org/apache/nifi/fingerprint/FingerprintFactoryGroovyIT.groovy b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/groovy/org/apache/nifi/fingerprint/FingerprintFactoryGroovyIT.groovy
deleted file mode 100644
index 8710aba8f4..0000000000
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/groovy/org/apache/nifi/fingerprint/FingerprintFactoryGroovyIT.groovy
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.fingerprint
-
-import org.apache.nifi.encrypt.PropertyEncryptor
-import org.apache.nifi.encrypt.SensitiveValueEncoder
-import org.apache.nifi.nar.ExtensionManager
-import org.apache.nifi.nar.StandardExtensionDiscoveringManager
-import org.apache.nifi.util.NiFiProperties
-import org.bouncycastle.jce.provider.BouncyCastleProvider
-import org.junit.jupiter.api.AfterAll
-import org.junit.jupiter.api.BeforeAll
-import org.junit.jupiter.api.Test
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-
-import java.security.Security
-
-import static org.junit.jupiter.api.Assertions.assertFalse
-import static org.junit.jupiter.api.Assertions.assertTrue
-
-class FingerprintFactoryGroovyIT {
- private static final Logger logger = LoggerFactory.getLogger(FingerprintFactoryGroovyIT.class)
-
- private static PropertyEncryptor mockEncryptor = [
- encrypt: { String plaintext -> plaintext.reverse() },
- decrypt: { String cipherText -> cipherText.reverse() }] as PropertyEncryptor
- private static SensitiveValueEncoder mockSensitiveValueEncoder = [
- getEncoded: { String plaintext -> "[MASKED] (${plaintext.sha256()})".toString() }] as SensitiveValueEncoder
- private static ExtensionManager extensionManager = new StandardExtensionDiscoveringManager()
-
- private static String originalPropertiesPath = System.getProperty(NiFiProperties.PROPERTIES_FILE_PATH)
- private static final String NIFI_PROPERTIES_PATH = "src/test/resources/conf/nifi.properties"
-
- @BeforeAll
- static void setUpOnce() throws Exception {
- Security.addProvider(new BouncyCastleProvider())
-
- logger.metaClass.methodMissing = { String name, args ->
- logger.info("[${name?.toUpperCase()}] ${(args as List).join(" ")}")
- }
- }
-
- @AfterAll
- static void tearDownOnce() {
- if (originalPropertiesPath) {
- System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH, originalPropertiesPath)
- }
- }
-
- /**
- * The initial implementation derived the hashed value using a time/memory-hard algorithm (Argon2) every time.
- * For large flow definitions, this blocked startup for minutes. Deriving a secure key with the Argon2
- * algorithm once at startup (~1 second) and using this cached key for a simple HMAC/SHA-256 operation on every
- * fingerprint should be much faster.
- */
- @Test
- void testCreateFingerprintShouldNotBeSlow() {
- // Arrange
- int testIterations = 100 //_000
-
- // Set up test nifi.properties
- System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH, NIFI_PROPERTIES_PATH)
-
- // Create flow
- String initialFlowXML = new File("src/test/resources/nifi/fingerprint/initial.xml").text
- logger.info("Read initial flow: ${initialFlowXML[0..<100]}...")
-
- // Create the FingerprintFactory with collaborators
- FingerprintFactory fingerprintFactory =
- new FingerprintFactory(mockEncryptor, extensionManager, mockSensitiveValueEncoder)
-
- List<String> results = []
- def resultDurations = []
-
- // Act
- testIterations.times { int i ->
- long startNanos = System.nanoTime()
-
- // Create the fingerprint from the flow
- String fingerprint = fingerprintFactory.createFingerprint(initialFlowXML.bytes)
-
- long endNanos = System.nanoTime()
- long durationNanos = endNanos - startNanos
-
- logger.info("Generated flow fingerprint: ${fingerprint} in ${durationNanos} ns")
-
- results << fingerprint
- resultDurations << durationNanos
- }
-
- def milliDurations = [resultDurations.min(), resultDurations.max(), resultDurations.sum() / resultDurations.size()].collect { it / 1_000_000 }
- logger.info("Min/Max/Avg durations in ms: ${milliDurations}")
-
- // Assert
- final long MAX_DURATION_NANOS = 1_000_000_000 // 1 second
- assertTrue(resultDurations.max() <= MAX_DURATION_NANOS * 2)
- assertTrue(resultDurations.sum() / testIterations < MAX_DURATION_NANOS)
-
- // Assert the fingerprint does not contain the password
- results.forEach(fingerprint -> {
- assertFalse(fingerprint.contains("originalPlaintextPassword"))
- def maskedValue = (fingerprint =~ /\[MASKED\] \([\w\/\+=]+\)/)
- assertTrue(maskedValue.find())
- logger.info("Masked value: ${maskedValue[0]}")
- })
- }
-}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/groovy/org/apache/nifi/fingerprint/FingerprintFactoryGroovyTest.groovy b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/groovy/org/apache/nifi/fingerprint/FingerprintFactoryGroovyTest.groovy
deleted file mode 100644
index 36caa01ba4..0000000000
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/groovy/org/apache/nifi/fingerprint/FingerprintFactoryGroovyTest.groovy
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.fingerprint
-
-import org.apache.nifi.encrypt.PropertyEncryptor
-import org.apache.nifi.encrypt.SensitiveValueEncoder
-import org.apache.nifi.nar.ExtensionManager
-import org.apache.nifi.nar.StandardExtensionDiscoveringManager
-import org.apache.nifi.util.NiFiProperties
-import org.bouncycastle.jce.provider.BouncyCastleProvider
-import org.junit.jupiter.api.AfterAll
-import org.junit.jupiter.api.BeforeAll
-import org.junit.jupiter.api.Test
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-
-import java.security.Security
-
-import static org.junit.jupiter.api.Assertions.assertFalse
-import static org.junit.jupiter.api.Assertions.assertTrue
-
-class FingerprintFactoryGroovyTest {
- private static final Logger logger = LoggerFactory.getLogger(FingerprintFactoryGroovyTest.class)
-
- private static PropertyEncryptor mockEncryptor = [
- encrypt: { String plaintext -> plaintext.reverse() },
- decrypt: { String cipherText -> cipherText.reverse() }] as PropertyEncryptor
- private static SensitiveValueEncoder mockSensitiveValueEncoder = [
- getEncoded: { String plaintext -> "[MASKED] (${plaintext.sha256()})".toString() }] as SensitiveValueEncoder
- private static ExtensionManager extensionManager = new StandardExtensionDiscoveringManager()
-
- private static String originalPropertiesPath = System.getProperty(NiFiProperties.PROPERTIES_FILE_PATH)
- private static final String NIFI_PROPERTIES_PATH = "src/test/resources/conf/nifi.properties"
-
- @BeforeAll
- static void setUpOnce() throws Exception {
- Security.addProvider(new BouncyCastleProvider())
-
- logger.metaClass.methodMissing = { String name, args ->
- logger.info("[${name?.toUpperCase()}] ${(args as List).join(" ")}")
- }
- }
-
- @AfterAll
- static void tearDownOnce() {
- if (originalPropertiesPath) {
- System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH, originalPropertiesPath)
- }
- }
-
- /**
- * The flow fingerprint should not disclose sensitive property values.
- */
- @Test
- void testCreateFingerprintShouldNotDiscloseSensitivePropertyValues() {
- // Arrange
- System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH, NIFI_PROPERTIES_PATH)
-
- // Create flow
- String initialFlowXML = new File("src/test/resources/nifi/fingerprint/initial.xml").text
- logger.info("Read initial flow: ${initialFlowXML[0..<100]}...")
-
- // Create the FingerprintFactory with collaborators
- FingerprintFactory fingerprintFactory = new FingerprintFactory(mockEncryptor, extensionManager, mockSensitiveValueEncoder)
-
- // Act
-
- // Create the fingerprint from the flow
- String fingerprint = fingerprintFactory.createFingerprint(initialFlowXML.bytes)
- logger.info("Generated flow fingerprint: ${fingerprint}")
-
- // Assert
- // Assert the fingerprint does not contain the password
- assertFalse(fingerprint.contains("originalPlaintextPassword"))
- def maskedValue = (fingerprint =~ /\[MASKED\] \([\w\/\+=]+\)/)
- assertTrue(maskedValue.find())
- logger.info("Masked value: ${maskedValue[0]}")
- }
-}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/StandardProcessorNodeIT.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/StandardProcessorNodeIT.java
index 87745803fb..49f824a8b3 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/StandardProcessorNodeIT.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/StandardProcessorNodeIT.java
@@ -152,7 +152,7 @@ public class StandardProcessorNodeIT {
new StandardComponentVariableRegistry(VariableRegistry.EMPTY_REGISTRY), reloadComponent, extensionManager, new SynchronousValidationTrigger());
final ScheduledExecutorService taskScheduler = new FlowEngine(1, "TestClasspathResources", true);
- final StandardProcessContext processContext = new StandardProcessContext(procNode, null, null, null, () -> false, null);
+ final StandardProcessContext processContext = new StandardProcessContext(procNode, null, null, () -> false, null);
final SchedulingAgentCallback schedulingAgentCallback = new FailIfTriggeredSchedulingAgentCallback(taskScheduler);
procNode.performValidation();
@@ -535,7 +535,7 @@ public class StandardProcessorNodeIT {
final ProcessorNode procNode = createProcessorNode(alwaysInvalid, new MockReloadComponent());
final ScheduledExecutorService taskScheduler = new FlowEngine(1, "TestStartInvalidProcessorThenStopFutureTriggered", true);
- final StandardProcessContext processContext = new StandardProcessContext(procNode, null, null, null, () -> false, null);
+ final StandardProcessContext processContext = new StandardProcessContext(procNode, null, null, () -> false, null);
final SchedulingAgentCallback schedulingAgentCallback = new FailIfTriggeredSchedulingAgentCallback(taskScheduler);
procNode.start(taskScheduler, 20000L, 10000L, () -> processContext, schedulingAgentCallback, true);
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/integration/parameters/ParametersIT.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/integration/parameters/ParametersIT.java
index 53d0d46652..84220c493c 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/integration/parameters/ParametersIT.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/integration/parameters/ParametersIT.java
@@ -444,7 +444,7 @@ public class ParametersIT extends FrameworkIntegrationTest {
properties.put("password", "#{pass}");
usernamePassword.setProperties(properties);
- final ProcessContext processContext = new StandardProcessContext(usernamePassword, getFlowController().getControllerServiceProvider(), getFlowController().getEncryptor(),
+ final ProcessContext processContext = new StandardProcessContext(usernamePassword, getFlowController().getControllerServiceProvider(),
getFlowController().getStateManagerProvider().getStateManager(usernamePassword.getIdentifier()), () -> false, getFlowController());
final PropertyDescriptor descriptor = usernamePassword.getPropertyDescriptor("password");
final PropertyValue propertyValue = processContext.getProperty(descriptor);
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/main/java/org/apache/nifi/mock/MockProcessContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/main/java/org/apache/nifi/mock/MockProcessContext.java
index 7dcb24a1dd..c4b0978f56 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/main/java/org/apache/nifi/mock/MockProcessContext.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/main/java/org/apache/nifi/mock/MockProcessContext.java
@@ -75,16 +75,6 @@ public class MockProcessContext implements ProcessContext {
return Collections.emptyMap();
}
- @Override
- public String encrypt(String unencrypted) {
- return unencrypted;
- }
-
- @Override
- public String decrypt(String encrypted) {
- return encrypted;
- }
-
@Override
public ControllerServiceLookup getControllerServiceLookup() {
return new MockControllerServiceLookup();
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java
index 6972e54921..a195c786f2 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java
@@ -128,7 +128,7 @@ public class StandardProcessorDAO extends ComponentDAO implements ProcessorDAO {
configureProcessor(processor, processorDTO);
// Notify the processor node that the configuration (properties, e.g.) has been restored
- final StandardProcessContext processContext = new StandardProcessContext(processor, flowController.getControllerServiceProvider(), flowController.getEncryptor(),
+ final StandardProcessContext processContext = new StandardProcessContext(processor, flowController.getControllerServiceProvider(),
flowController.getStateManagerProvider().getStateManager(processor.getProcessor().getIdentifier()), () -> false, flowController);
processor.onConfigurationRestored(processContext);
@@ -481,7 +481,7 @@ public class StandardProcessorDAO extends ComponentDAO implements ProcessorDAO {
final ProcessorNode processor = locateProcessor(processorId);
final ProcessContext processContext = new StandardProcessContext(processor, properties, processor.getAnnotationData(),
- processor.getProcessGroup().getParameterContext(), flowController.getControllerServiceProvider(), flowController.getEncryptor(),
+ processor.getProcessGroup().getParameterContext(), flowController.getControllerServiceProvider(),
new NopStateManager(), () -> false, flowController);
final LogRepository logRepository = new NopLogRepository();
diff --git a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessFlowManager.java b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessFlowManager.java
index 240759d356..b1e49457a7 100644
--- a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessFlowManager.java
+++ b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessFlowManager.java
@@ -183,7 +183,7 @@ public class StatelessFlowManager extends AbstractFlowManager implements FlowMan
try (final NarCloseable nc = NarCloseable.withComponentNarLoader(extensionManager, procNode.getProcessor().getClass(), procNode.getProcessor().getIdentifier())) {
final StateManager stateManager = statelessEngine.getStateManagerProvider().getStateManager(id);
final StandardProcessContext processContext = new StandardProcessContext(procNode, statelessEngine.getControllerServiceProvider(),
- statelessEngine.getPropertyEncryptor(), stateManager, () -> false, new StatelessNodeTypeProvider());
+ stateManager, () -> false, new StatelessNodeTypeProvider());
ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnConfigurationRestored.class, procNode.getProcessor(), processContext);
}
diff --git a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessProcessContextFactory.java b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessProcessContextFactory.java
index 384ab8991f..f258053e02 100644
--- a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessProcessContextFactory.java
+++ b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessProcessContextFactory.java
@@ -24,31 +24,27 @@ import org.apache.nifi.controller.NodeTypeProvider;
import org.apache.nifi.controller.ProcessorNode;
import org.apache.nifi.controller.repository.scheduling.ConnectableProcessContext;
import org.apache.nifi.controller.service.ControllerServiceProvider;
-import org.apache.nifi.encrypt.PropertyEncryptor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.StandardProcessContext;
public class StatelessProcessContextFactory implements ProcessContextFactory {
private static final NodeTypeProvider NODE_TYPE_PROVIDER = new StatelessNodeTypeProvider();
private final ControllerServiceProvider controllerServiceProvider;
- private final PropertyEncryptor encryptor;
private final StateManagerProvider stateManagerProvider;
- public StatelessProcessContextFactory(final ControllerServiceProvider controllerServiceProvider, final PropertyEncryptor encryptor, final StateManagerProvider stateManagerProvider) {
+ public StatelessProcessContextFactory(final ControllerServiceProvider controllerServiceProvider, final StateManagerProvider stateManagerProvider) {
this.controllerServiceProvider = controllerServiceProvider;
- this.encryptor = encryptor;
this.stateManagerProvider = stateManagerProvider;
}
-
public ProcessContext createProcessContext(final Connectable connectable) {
final StateManager stateManager = stateManagerProvider.getStateManager(connectable.getIdentifier());
if (connectable instanceof ProcessorNode) {
final ProcessorNode processor = (ProcessorNode) connectable;
- return new StandardProcessContext(processor, controllerServiceProvider, encryptor, stateManager, () -> false, NODE_TYPE_PROVIDER);
+ return new StandardProcessContext(processor, controllerServiceProvider, stateManager, () -> false, NODE_TYPE_PROVIDER);
}
- return new ConnectableProcessContext(connectable, encryptor, stateManager);
+ return new ConnectableProcessContext(connectable, stateManager);
}
}
diff --git a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessReloadComponent.java b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessReloadComponent.java
index c399f1d677..7ac2917969 100644
--- a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessReloadComponent.java
+++ b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StatelessReloadComponent.java
@@ -86,7 +86,7 @@ public class StatelessReloadComponent implements ReloadComponent {
try (final NarCloseable x = NarCloseable.withComponentNarLoader(existingInstanceClassLoader)) {
final StateManager stateManager = statelessEngine.getStateManagerProvider().getStateManager(id);
final StandardProcessContext processContext = new StandardProcessContext(existingNode, statelessEngine.getControllerServiceProvider(),
- statelessEngine.getPropertyEncryptor(), stateManager, () -> false, new StatelessNodeTypeProvider());
+ stateManager, () -> false, new StatelessNodeTypeProvider());
ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnRemoved.class, existingNode.getProcessor(), processContext);
} finally {
@@ -107,7 +107,7 @@ public class StatelessReloadComponent implements ReloadComponent {
// Notify the processor node that the configuration (properties, e.g.) has been restored
final StandardProcessContext processContext = new StandardProcessContext(existingNode, statelessEngine.getControllerServiceProvider(),
- statelessEngine.getPropertyEncryptor(), statelessEngine.getStateManagerProvider().getStateManager(id), () -> false, new StatelessNodeTypeProvider());
+ statelessEngine.getStateManagerProvider().getStateManager(id), () -> false, new StatelessNodeTypeProvider());
existingNode.onConfigurationRestored(processContext);
logger.debug("Successfully reloaded {}", existingNode);
diff --git a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/flow/StandardStatelessDataflowFactory.java b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/flow/StandardStatelessDataflowFactory.java
index 124af2d99e..dcde902444 100644
--- a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/flow/StandardStatelessDataflowFactory.java
+++ b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/flow/StandardStatelessDataflowFactory.java
@@ -198,7 +198,7 @@ public class StandardStatelessDataflowFactory implements StatelessDataflowFactor
final ControllerServiceProvider controllerServiceProvider = new StandardControllerServiceProvider(processScheduler, bulletinRepository, flowManager, extensionManager);
- final ProcessContextFactory rawProcessContextFactory = new StatelessProcessContextFactory(controllerServiceProvider, lazyInitializedEncryptor, stateManagerProvider);
+ final ProcessContextFactory rawProcessContextFactory = new StatelessProcessContextFactory(controllerServiceProvider, stateManagerProvider);
final ProcessContextFactory processContextFactory = new CachingProcessContextFactory(rawProcessContextFactory);
contentRepo = createContentRepository(engineConfiguration);
flowFileRepo = new StatelessFlowFileRepository();