[nifi] branch main updated: NIFI-11057 Added Registry NAR Provider Variable for Docker
This is an automated email from the ASF dual-hosted git repository. exceptionfactory 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 8198ab5cbd NIFI-11057 Added Registry NAR Provider Variable for Docker 8198ab5cbd is described below commit 8198ab5cbd728e48fd7472b4fb6aac13d5ad40cd Author: Dominique Jean-Prost AuthorDate: Fri Jan 13 17:34:44 2023 +0100 NIFI-11057 Added Registry NAR Provider Variable for Docker This closes #6847 Signed-off-by: David Handermann --- nifi-docker/dockerhub/sh/common.sh | 22 ++ nifi-docker/dockerhub/sh/start.sh | 7 +++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/nifi-docker/dockerhub/sh/common.sh b/nifi-docker/dockerhub/sh/common.sh index f3ea43580e..d78aec494c 100755 --- a/nifi-docker/dockerhub/sh/common.sh +++ b/nifi-docker/dockerhub/sh/common.sh @@ -19,14 +19,28 @@ # 3 - file to perform replacement inline prop_replace () { target_file=${3:-${nifi_props_file}} - echo 'replacing target file ' ${target_file} + echo "File [${target_file}] replacing [${1}]" sed -i -e "s|^$1=.*$|$1=$2|" ${target_file} } uncomment() { - target_file=${2} - echo "Uncommenting ${target_file}" - sed -i -e "s|^\#$1|$1|" ${target_file} + target_file=${2} + echo "File [${target_file}] uncommenting [${1}]" + sed -i -e "s|^\#$1|$1|" ${target_file} +} + +# 1 - property key to add or replace +# 2 - property value to use +# 3 - file to perform replacement inline +prop_add_or_replace () { + target_file=${3:-${nifi_props_file}} + property_found=$(awk -v property="${1}" 'index($0, property) == 1') + if [ -z "${property_found}" ]; then +echo "File [${target_file}] adding [${1}]" +echo "$1=$2" >> ${target_file} + else +prop_replace $1 $2 $3 + fi } # NIFI_HOME is defined by an ENV command in the backing Dockerfile diff --git a/nifi-docker/dockerhub/sh/start.sh b/nifi-docker/dockerhub/sh/start.sh index 40b33a33ae..869a8e41b5 100755 --- a/nifi-docker/dockerhub/sh/start.sh +++ b/nifi-docker/dockerhub/sh/start.sh @@ -97,6 +97,13 @@ prop_replace 'nifi.analytics.connection.model.implementation' "${NIFI_ANALYTIC prop_replace 'nifi.analytics.connection.model.score.name' "${NIFI_ANALYTICS_MODEL_SCORE_NAME:-rSquared}" prop_replace 'nifi.analytics.connection.model.score.threshold' "${NIFI_ANALYTICS_MODEL_SCORE_THRESHOLD:-.90}" +# Add NAR provider properties +# nifi-registry NAR provider +if [ -n "${NIFI_NAR_LIBRARY_PROVIDER_NIFI_REGISTRY_URL}" ]; then +prop_add_or_replace 'nifi.nar.library.provider.nifi-registry.implementation' 'org.apache.nifi.registry.extension.NiFiRegistryExternalResourceProvider' +prop_add_or_replace 'nifi.nar.library.provider.nifi-registry.url' "${NIFI_NAR_LIBRARY_PROVIDER_NIFI_REGISTRY_URL}" +fi + if [ -n "${NIFI_SENSITIVE_PROPS_KEY}" ]; then prop_replace 'nifi.sensitive.props.key' "${NIFI_SENSITIVE_PROPS_KEY}" fi
[nifi] branch main updated: NIFI-11139 Updated multiple Maven Plugins
This is an automated email from the ASF dual-hosted git repository. exceptionfactory 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 4f91420cc1 NIFI-11139 Updated multiple Maven Plugins 4f91420cc1 is described below commit 4f91420cc116e0b27dee1661dfb44ca69e3e7a42 Author: Joe Witt AuthorDate: Fri Feb 3 13:13:18 2023 -0700 NIFI-11139 Updated multiple Maven Plugins This closes #6925 Signed-off-by: David Handermann --- nifi-commons/nifi-xml-processing/pom.xml | 2 +- nifi-h2/nifi-h2-database/pom.xml | 2 +- .../nifi-box-bundle/nifi-box-nar/pom.xml | 2 +- .../nifi-flume-processors/pom.xml | 11 +++ .../nifi-framework/nifi-web/nifi-web-ui/pom.xml| 2 +- .../nifi-hive-bundle/nifi-hive3-processors/pom.xml | 4 .../nifi-scripting-processors/pom.xml | 1 - .../nifi-standard-processors/pom.xml | 1 - .../nifi-registry-core/nifi-registry-docs/pom.xml | 1 - .../nifi-registry-web-api/pom.xml | 2 +- .../nifi-registry-ranger-jersey-bundle/pom.xml | 2 +- nifi-registry/pom.xml | 8 ++-- pom.xml| 22 +- 13 files changed, 32 insertions(+), 28 deletions(-) diff --git a/nifi-commons/nifi-xml-processing/pom.xml b/nifi-commons/nifi-xml-processing/pom.xml index bc464e32e8..91db4e1e99 100644 --- a/nifi-commons/nifi-xml-processing/pom.xml +++ b/nifi-commons/nifi-xml-processing/pom.xml @@ -27,7 +27,7 @@ com.github.spotbugs spotbugs-maven-plugin -4.6.0.0 +4.7.3.0 package diff --git a/nifi-h2/nifi-h2-database/pom.xml b/nifi-h2/nifi-h2-database/pom.xml index c535e1de33..80a6f8f213 100644 --- a/nifi-h2/nifi-h2-database/pom.xml +++ b/nifi-h2/nifi-h2-database/pom.xml @@ -48,7 +48,7 @@ org.apache.maven.plugins maven-shade-plugin -3.2.4 +3.4.1 compile diff --git a/nifi-nar-bundles/nifi-box-bundle/nifi-box-nar/pom.xml b/nifi-nar-bundles/nifi-box-bundle/nifi-box-nar/pom.xml index 1675ed48be..dbeeb61885 100644 --- a/nifi-nar-bundles/nifi-box-bundle/nifi-box-nar/pom.xml +++ b/nifi-nar-bundles/nifi-box-bundle/nifi-box-nar/pom.xml @@ -48,7 +48,7 @@ org.codehaus.mojo license-maven-plugin -1.8 +2.0.0 + +com.google.code.findbugs +jsr305 + + + +com.github.stephenc.findbugs +findbugs-annotations +1.3.9-1 + diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml index 239b8e8e71..1177728715 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml @@ -418,7 +418,7 @@ org.apache.maven.plugins maven-clean-plugin -3.0.0 +3.2.0 true diff --git a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/pom.xml b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/pom.xml index 8aa616f19b..a43e066c16 100644 --- a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/pom.xml +++ b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/pom.xml @@ -125,6 +125,10 @@ org.apache.logging.log4j log4j-slf4j-impl + +com.google.code.findbugs +jsr305 + diff --git a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/pom.xml b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/pom.xml index 0f99256815..65af30fe4d 100644 --- a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/pom.xml +++ b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/pom.xml @@ -164,7 +164,6 @@ org.apache.maven.plugins maven-dependency-plugin -3.3.0 copy diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml
[nifi] 02/03: NIFI-11118: This closes #6909. When changing version of a versioned flow, ensure that we properly set the Version Control Information's StorageLocation for the NiFi Registry client in or
This is an automated email from the ASF dual-hosted git repository. joewitt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi.git commit 28b9f6fc020616ac5d1f99a2477fe456458560a8 Author: Mark Payne AuthorDate: Tue Jan 31 11:00:55 2023 -0500 NIFI-8: This closes #6909. When changing version of a versioned flow, ensure that we properly set the Version Control Information's StorageLocation for the NiFi Registry client in order to maintain backward compatibility Signed-off-by: Joe Witt --- .../flow/mapping/NiFiRegistryFlowMapper.java | 30 +++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/registry/flow/mapping/NiFiRegistryFlowMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/registry/flow/mapping/NiFiRegistryFlowMapper.java index ca5754c59e..d6e7c19f21 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/registry/flow/mapping/NiFiRegistryFlowMapper.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/registry/flow/mapping/NiFiRegistryFlowMapper.java @@ -19,6 +19,7 @@ package org.apache.nifi.registry.flow.mapping; import org.apache.commons.lang3.ClassUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.nifi.bundle.BundleCoordinate; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.resource.ResourceCardinality; @@ -169,7 +170,9 @@ public class NiFiRegistryFlowMapper { } coordinates.setRegistryUrl(getRegistryUrl(registry)); - coordinates.setStorageLocation(versionControlInfo.getStorageLocation() == null ?getRegistryUrl(registry) : versionControlInfo.getStorageLocation()); + +final String storageLocation = determineStorageLocation(registry, versionControlInfo); +coordinates.setStorageLocation(storageLocation); coordinates.setBucketId(versionControlInfo.getBucketIdentifier()); coordinates.setFlowId(versionControlInfo.getFlowIdentifier()); coordinates.setVersion(versionControlInfo.getVersion()); @@ -193,12 +196,33 @@ public class NiFiRegistryFlowMapper { } +private boolean isNiFiRegistryClient(final FlowRegistryClientNode clientNode) { +return clientNode.getComponentType().endsWith("NifiRegistryFlowRegistryClient"); +} + // This is specific for the {@code NifiRegistryFlowRegistryClient}, purely for backward compatibility private String getRegistryUrl(final FlowRegistryClientNode registry) { -return registry.getComponentType().endsWith("NifiRegistryFlowRegistryClient") - ? registry.getRawPropertyValue(registry.getPropertyDescriptor(REGISTRY_URL_DESCRIPTOR_NAME)) : ""; +return isNiFiRegistryClient(registry) ? registry.getRawPropertyValue(registry.getPropertyDescriptor(REGISTRY_URL_DESCRIPTOR_NAME)) : ""; +} + +private String determineStorageLocation(final FlowRegistryClientNode registryClient, final VersionControlInformation versionControlInformation) { +final String explicitStorageLocation = versionControlInformation.getStorageLocation(); +if (!StringUtils.isEmpty(explicitStorageLocation)) { +return explicitStorageLocation; +} + +final String registryUrl = getRegistryUrl(registryClient); +if (StringUtils.isEmpty(registryUrl)) { +return ""; +} + +final String bucketId = versionControlInformation.getBucketIdentifier(); +final String flowId = versionControlInformation.getFlowIdentifier(); +final int version = versionControlInformation.getVersion(); +return String.format("%s/nifi-registry-api/buckets/%s/flows/%s/versions/%s", registryUrl, bucketId, flowId, version); } + private InstantiatedVersionedProcessGroup mapGroup(final ProcessGroup group, final ControllerServiceProvider serviceProvider, final BiFunction applyVersionControlInfo) { final Set allIncludedGroupsIds = group.findAllProcessGroups().stream()
[nifi] 03/03: NIFI-11140 This closes #6922. Upgraded Tomcat from 8.5.82 to 8.5.85 for Flume
This is an automated email from the ASF dual-hosted git repository. joewitt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi.git commit cd76dc0366a72d0830da2412a990e0601e50ea77 Author: exceptionfactory AuthorDate: Fri Feb 3 12:26:29 2023 -0600 NIFI-11140 This closes #6922. Upgraded Tomcat from 8.5.82 to 8.5.85 for Flume Signed-off-by: Joe Witt --- nifi-nar-bundles/nifi-flume-bundle/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi-nar-bundles/nifi-flume-bundle/pom.xml b/nifi-nar-bundles/nifi-flume-bundle/pom.xml index aa51b7c97d..bc7039da46 100644 --- a/nifi-nar-bundles/nifi-flume-bundle/pom.xml +++ b/nifi-nar-bundles/nifi-flume-bundle/pom.xml @@ -44,7 +44,7 @@ org.apache.tomcat.embed tomcat-embed-core -8.5.82 +8.5.85
[nifi] branch main updated (0b61a6226c -> cd76dc0366)
This is an automated email from the ASF dual-hosted git repository. joewitt pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/nifi.git from 0b61a6226c NIFI-11092 Fixed ConsumeTwitter handling on Primary Node changes new b3319c7119 NIFI-11141 This closes #6923. Upgraded Azure SDK BOM from 1.2.6 to 1.2.9 new 28b9f6fc02 NIFI-8: This closes #6909. When changing version of a versioned flow, ensure that we properly set the Version Control Information's StorageLocation for the NiFi Registry client in order to maintain backward compatibility new cd76dc0366 NIFI-11140 This closes #6922. Upgraded Tomcat from 8.5.82 to 8.5.85 for Flume The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../nifi-property-protection-azure/pom.xml | 2 +- nifi-nar-bundles/nifi-azure-bundle/pom.xml | 2 +- nifi-nar-bundles/nifi-flume-bundle/pom.xml | 2 +- .../flow/mapping/NiFiRegistryFlowMapper.java | 30 +++--- 4 files changed, 30 insertions(+), 6 deletions(-)
[nifi] 01/03: NIFI-11141 This closes #6923. Upgraded Azure SDK BOM from 1.2.6 to 1.2.9
This is an automated email from the ASF dual-hosted git repository. joewitt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi.git commit b3319c71190577fe8d109a41f210d285c101e522 Author: exceptionfactory AuthorDate: Fri Feb 3 12:37:48 2023 -0600 NIFI-11141 This closes #6923. Upgraded Azure SDK BOM from 1.2.6 to 1.2.9 Signed-off-by: Joe Witt --- nifi-commons/nifi-property-protection-azure/pom.xml | 2 +- nifi-nar-bundles/nifi-azure-bundle/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nifi-commons/nifi-property-protection-azure/pom.xml b/nifi-commons/nifi-property-protection-azure/pom.xml index d4a685ce99..3ac8172b2f 100644 --- a/nifi-commons/nifi-property-protection-azure/pom.xml +++ b/nifi-commons/nifi-property-protection-azure/pom.xml @@ -26,7 +26,7 @@ com.azure azure-sdk-bom -1.2.0 +1.2.9 import pom diff --git a/nifi-nar-bundles/nifi-azure-bundle/pom.xml b/nifi-nar-bundles/nifi-azure-bundle/pom.xml index 735da062fd..3b010147bb 100644 --- a/nifi-nar-bundles/nifi-azure-bundle/pom.xml +++ b/nifi-nar-bundles/nifi-azure-bundle/pom.xml @@ -26,7 +26,7 @@ pom -1.2.6 +1.2.9 8.6.6 1.13.3
[nifi] branch main updated: NIFI-11092 Fixed ConsumeTwitter handling on Primary Node changes
This is an automated email from the ASF dual-hosted git repository. exceptionfactory 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 0b61a6226c NIFI-11092 Fixed ConsumeTwitter handling on Primary Node changes 0b61a6226c is described below commit 0b61a6226c359fb97d098eb4c536294f04a4255a Author: Emilio Setiadarma AuthorDate: Thu Jan 26 15:22:19 2023 -0800 NIFI-11092 Fixed ConsumeTwitter handling on Primary Node changes This closes #6901 Signed-off-by: David Handermann --- .../nifi/processors/twitter/ConsumeTwitter.java| 45 ++ .../processors/twitter/TweetStreamService.java | 8 ++-- 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/ConsumeTwitter.java b/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/ConsumeTwitter.java index 041fd80dba..2517456d74 100644 --- a/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/ConsumeTwitter.java +++ b/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/ConsumeTwitter.java @@ -26,6 +26,8 @@ import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnScheduled; import org.apache.nifi.annotation.lifecycle.OnStopped; +import org.apache.nifi.annotation.notification.OnPrimaryNodeStateChange; +import org.apache.nifi.annotation.notification.PrimaryNodeState; import org.apache.nifi.components.AllowableValue; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.flowfile.FlowFile; @@ -49,6 +51,7 @@ import java.util.HashMap; import java.util.UUID; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; @PrimaryNodeOnly @@ -255,6 +258,8 @@ public class ConsumeTwitter extends AbstractProcessor { private volatile BlockingQueue messageQueue; +private final AtomicBoolean streamStarted = new AtomicBoolean(false); + @Override protected void init(ProcessorInitializationContext context) { final List descriptors = new ArrayList<>(); @@ -296,13 +301,13 @@ public class ConsumeTwitter extends AbstractProcessor { @OnScheduled public void onScheduled(final ProcessContext context) { messageQueue = new LinkedBlockingQueue<>(context.getProperty(QUEUE_SIZE).asInteger()); - -tweetStreamService = new TweetStreamService(context, messageQueue, getLogger()); -tweetStreamService.start(); +streamStarted.set(false); } @Override public void onTrigger(ProcessContext context, ProcessSession session) throws ProcessException { +startTweetStreamService(context); + final String firstTweet = messageQueue.poll(); if (firstTweet == null) { context.yield(); @@ -338,15 +343,41 @@ public class ConsumeTwitter extends AbstractProcessor { session.getProvenanceReporter().receive(flowFile, transitUri); } +@OnPrimaryNodeStateChange +public void onPrimaryNodeStateChange(final PrimaryNodeState newState) { +if (newState == PrimaryNodeState.PRIMARY_NODE_REVOKED) { +stopTweetStreamService(); +} +} + @OnStopped public void onStopped() { -if (tweetStreamService != null) { -tweetStreamService.stop(); -} -tweetStreamService = null; +stopTweetStreamService(); emptyQueue(); } +private void startTweetStreamService(final ProcessContext context) { +if (streamStarted.compareAndSet(false, true)) { +tweetStreamService = new TweetStreamService(context, messageQueue, getLogger()); +tweetStreamService.start(); +} + +} + +private void stopTweetStreamService() { +if (streamStarted.compareAndSet(true, false)) { +if (tweetStreamService != null) { +tweetStreamService.stop(); +} +tweetStreamService = null; + +if (!messageQueue.isEmpty()) { +getLogger().warn("Stopped consuming stream: unprocessed messages [{}]", messageQueue.size()); +} +} +} + + private void emptyQueue() { while (!messageQueue.isEmpty()) { messageQueue.poll(); diff --git a/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/TweetStreamService.java
[nifi] branch main updated: NIFI-11103 bumping apache parent
This is an automated email from the ASF dual-hosted git repository. joewitt 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 28bfd1252f NIFI-11103 bumping apache parent 28bfd1252f is described below commit 28bfd1252fd577042fed092849b4b1cd1404e7f3 Author: Joe Witt AuthorDate: Fri Feb 3 10:59:06 2023 -0700 NIFI-11103 bumping apache parent --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9421e6a95c..c511ccc795 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ org.apache apache -28 +29 org.apache.nifi
[nifi] branch main updated: NIFI-11103 NIFI-11104 bumping nifi nar maven plugin
This is an automated email from the ASF dual-hosted git repository. joewitt 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 5ae8d1900e NIFI-11103 NIFI-11104 bumping nifi nar maven plugin 5ae8d1900e is described below commit 5ae8d1900e54ab3db6032e4f167c4f48e3f81953 Author: Joe Witt AuthorDate: Fri Feb 3 10:44:17 2023 -0700 NIFI-11103 NIFI-11104 bumping nifi nar maven plugin --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6115b3be61..9421e6a95c 100644 --- a/pom.xml +++ b/pom.xml @@ -99,7 +99,7 @@ true v16.13.2 1.12.1 -1.3.5 +1.4.0 1669170166 UTF-8 UTF-8
[nifi] branch main updated: NIFI-11133 This closes #6920. Updated TLS Toolkit Standalone to set Client Key Password
This is an automated email from the ASF dual-hosted git repository. joewitt 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 e9f5e49d5b NIFI-11133 This closes #6920. Updated TLS Toolkit Standalone to set Client Key Password e9f5e49d5b is described below commit e9f5e49d5b9af1357f2ae190537ffa698df579c8 Author: exceptionfactory AuthorDate: Thu Feb 2 13:07:23 2023 -0600 NIFI-11133 This closes #6920. Updated TLS Toolkit Standalone to set Client Key Password Signed-off-by: Joe Witt --- .../tls/standalone/TlsToolkitStandalone.java| 21 + .../tls/standalone/TlsToolkitStandaloneTest.java| 3 ++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/standalone/TlsToolkitStandalone.java b/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/standalone/TlsToolkitStandalone.java index e460ca1949..664b00d206 100644 --- a/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/standalone/TlsToolkitStandalone.java +++ b/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/standalone/TlsToolkitStandalone.java @@ -49,6 +49,7 @@ import java.security.KeyPair; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; import java.security.SignatureException; import java.security.UnrecoverableKeyException; import java.security.cert.Certificate; @@ -292,10 +293,9 @@ public class TlsToolkitStandalone { } KeyPair keyPair = TlsHelper.generateKeyPair(keyPairAlgorithm, keySize); X509Certificate clientCert = CertificateUtils.generateIssuedCertificate(reorderedDn, keyPair.getPublic(), null, certificate, caKeyPair, signingAlgorithm, days); -KeyStore keyStore = KeyStoreUtils.getKeyStore(KeystoreType.PKCS12.toString()); -keyStore.load(null, null); -keyStore.setKeyEntry(NIFI_KEY, keyPair.getPrivate(), null, new Certificate[]{clientCert, certificate}); -String password = TlsHelper.writeKeyStore(keyStore, outputStreamFactory, clientCertFile, clientPasswords.get(i), standaloneConfig.isClientPasswordsGenerated()); +final String keyStorePassword = clientPasswords.get(i); +final KeyStore keyStore = setClientKeyStore(keyStorePassword, keyPair.getPrivate(), clientCert, certificate); +String password = TlsHelper.writeKeyStore(keyStore, outputStreamFactory, clientCertFile, keyStorePassword, standaloneConfig.isClientPasswordsGenerated()); try (FileWriter fileWriter = new FileWriter(new File(baseDir, clientDnFile + ".password"))) { fileWriter.write(password); @@ -311,4 +311,17 @@ public class TlsToolkitStandalone { } } +protected KeyStore setClientKeyStore( +final String keyStorePassword, +final PrivateKey privateKey, +final X509Certificate clientCertificate, +final X509Certificate issuerCertificate +) throws IOException, GeneralSecurityException { +final KeyStore keyStore = KeyStoreUtils.getKeyStore(KeystoreType.PKCS12.toString()); +keyStore.load(null, null); +final char[] keyPassword = keyStorePassword.toCharArray(); +final X509Certificate[] certificates = {clientCertificate, issuerCertificate}; +keyStore.setKeyEntry(NIFI_KEY, privateKey, keyPassword, certificates); +return keyStore; +} } diff --git a/nifi-toolkit/nifi-toolkit-tls/src/test/java/org/apache/nifi/toolkit/tls/standalone/TlsToolkitStandaloneTest.java b/nifi-toolkit/nifi-toolkit-tls/src/test/java/org/apache/nifi/toolkit/tls/standalone/TlsToolkitStandaloneTest.java index 6c6edf535d..7b58f23fe6 100644 --- a/nifi-toolkit/nifi-toolkit-tls/src/test/java/org/apache/nifi/toolkit/tls/standalone/TlsToolkitStandaloneTest.java +++ b/nifi-toolkit/nifi-toolkit-tls/src/test/java/org/apache/nifi/toolkit/tls/standalone/TlsToolkitStandaloneTest.java @@ -522,7 +522,8 @@ public class TlsToolkitStandaloneTest { try (FileInputStream fileInputStream = new FileInputStream(new File(tempDir, clientDnFile + ".p12"))) { keyStore.load(fileInputStream, password.toCharArray()); } -PrivateKey privateKey = (PrivateKey) keyStore.getKey(TlsToolkitStandalone.NIFI_KEY, new char[0]); +final char[] keyPassword = password.toCharArray(); +PrivateKey privateKey = (PrivateKey) keyStore.getKey(TlsToolkitStandalone.NIFI_KEY, keyPassword); Certificate[] certificateChain = keyStore.getCertificateChain(TlsToolkitStandalone.NIFI_KEY); assertEquals(2, certificateChain.length); assertEquals(rootCert, certificateChain[1]);
[nifi] branch main updated (56d8879e91 -> 0c171bbb08)
This is an automated email from the ASF dual-hosted git repository. tpalfy pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/nifi.git from 56d8879e91 NIFI-11107 In ConsumeIMAP and ConsumePOP3 added support for OAUTH based authorization. add 0c171bbb08 NIFI-10846: Added SMB Dialect and Use Encryption properties in SMB processors No new revisions were added by this update. Summary of changes: .../nifi-smb-bundle/nifi-smb-processors/pom.xml| 5 ++ .../org/apache/nifi/processors/smb/GetSmbFile.java | 29 +--- .../org/apache/nifi/processors/smb/PutSmbFile.java | 76 +++- .../apache/nifi/processors/smb/GetSmbFileTest.java | 12 ++-- .../apache/nifi/processors/smb/PutSmbFileTest.java | 12 ++-- .../nifi-smb-bundle/nifi-smb-smbj-client/pom.xml | 5 ++ .../services/smb/SmbjClientProviderService.java| 58 .../apache/nifi/services/smb/NiFiSmbjClientIT.java | 2 +- .../nifi-smb-smbj-common}/pom.xml | 32 + .../org/apache/nifi/smb/common/SmbDialect.java}| 28 +--- .../org/apache/nifi/smb/common/SmbProperties.java | 55 +++ .../java/org/apache/nifi/smb/common/SmbUtils.java | 59 .../org/apache/nifi/smb/common/SmbUtilsTest.java | 80 ++ nifi-nar-bundles/nifi-smb-bundle/pom.xml | 1 + 14 files changed, 346 insertions(+), 108 deletions(-) copy nifi-nar-bundles/{nifi-framework-bundle/nifi-framework/nifi-shell-authorizer => nifi-smb-bundle/nifi-smb-smbj-common}/pom.xml (74%) copy nifi-nar-bundles/{nifi-kafka-bundle/nifi-kafka-shared/src/main/java/org/apache/nifi/kafka/shared/property/PublishStrategy.java => nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbDialect.java} (64%) create mode 100644 nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbProperties.java create mode 100644 nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java create mode 100644 nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/test/java/org/apache/nifi/smb/common/SmbUtilsTest.java
[nifi] branch commit created (now 0c171bbb08)
This is an automated email from the ASF dual-hosted git repository. tpalfy pushed a change to branch commit in repository https://gitbox.apache.org/repos/asf/nifi.git at 0c171bbb08 NIFI-10846: Added SMB Dialect and Use Encryption properties in SMB processors This branch includes the following new commits: new 0c171bbb08 NIFI-10846: Added SMB Dialect and Use Encryption properties in SMB processors The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
[nifi] 01/01: NIFI-10846: Added SMB Dialect and Use Encryption properties in SMB processors
This is an automated email from the ASF dual-hosted git repository. tpalfy pushed a commit to branch commit in repository https://gitbox.apache.org/repos/asf/nifi.git commit 0c171bbb08160709d47890b6cd786a0c0575af3b Author: Peter Turcsanyi AuthorDate: Wed Feb 1 16:31:31 2023 +0100 NIFI-10846: Added SMB Dialect and Use Encryption properties in SMB processors This closes #6917. Signed-off-by: Tamas Palfy --- .../nifi-smb-bundle/nifi-smb-processors/pom.xml| 5 ++ .../org/apache/nifi/processors/smb/GetSmbFile.java | 29 +--- .../org/apache/nifi/processors/smb/PutSmbFile.java | 76 +++- .../apache/nifi/processors/smb/GetSmbFileTest.java | 12 ++-- .../apache/nifi/processors/smb/PutSmbFileTest.java | 12 ++-- .../nifi-smb-bundle/nifi-smb-smbj-client/pom.xml | 5 ++ .../services/smb/SmbjClientProviderService.java| 58 .../apache/nifi/services/smb/NiFiSmbjClientIT.java | 2 +- .../pom.xml| 34 ++--- .../org/apache/nifi/smb/common/SmbDialect.java | 58 .../org/apache/nifi/smb/common/SmbProperties.java | 55 +++ .../java/org/apache/nifi/smb/common/SmbUtils.java | 59 .../org/apache/nifi/smb/common/SmbUtilsTest.java | 80 ++ nifi-nar-bundles/nifi-smb-bundle/pom.xml | 1 + 14 files changed, 374 insertions(+), 112 deletions(-) diff --git a/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-processors/pom.xml b/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-processors/pom.xml index ccb53d2a87..31e9efdaca 100644 --- a/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-processors/pom.xml +++ b/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-processors/pom.xml @@ -49,6 +49,11 @@ nifi-utils 1.20.0-SNAPSHOT + +org.apache.nifi +nifi-smb-smbj-common +1.20.0-SNAPSHOT + com.hierynomus smbj diff --git a/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-processors/src/main/java/org/apache/nifi/processors/smb/GetSmbFile.java b/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-processors/src/main/java/org/apache/nifi/processors/smb/GetSmbFile.java index c03a846ab4..244ae4639f 100644 --- a/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-processors/src/main/java/org/apache/nifi/processors/smb/GetSmbFile.java +++ b/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-processors/src/main/java/org/apache/nifi/processors/smb/GetSmbFile.java @@ -40,6 +40,7 @@ import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.SeeAlso; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.annotation.lifecycle.OnStopped; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.ValidationContext; import org.apache.nifi.components.ValidationResult; @@ -79,6 +80,10 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.regex.Pattern; +import static org.apache.nifi.smb.common.SmbProperties.SMB_DIALECT; +import static org.apache.nifi.smb.common.SmbProperties.USE_ENCRYPTION; +import static org.apache.nifi.smb.common.SmbUtils.buildSmbClient; + @TriggerWhenEmpty @InputRequirement(InputRequirement.Requirement.INPUT_FORBIDDEN) @Tags({"samba, smb, cifs, files, get"}) @@ -249,15 +254,13 @@ public class GetSmbFile extends AbstractProcessor { descriptors.add(RECURSE); descriptors.add(POLLING_INTERVAL); descriptors.add(IGNORE_HIDDEN_FILES); +descriptors.add(SMB_DIALECT); +descriptors.add(USE_ENCRYPTION); this.descriptors = Collections.unmodifiableList(descriptors); final Set relationships = new HashSet(); relationships.add(REL_SUCCESS); this.relationships = Collections.unmodifiableSet(relationships); - -if (this.smbClient == null) { -initSmbClient(); -} } @Override @@ -272,6 +275,8 @@ public class GetSmbFile extends AbstractProcessor { @OnScheduled public void onScheduled(final ProcessContext context) { +smbClient = initSmbClient(context); + initiateFilterFile(context); fileQueue.clear(); @@ -291,6 +296,14 @@ public class GetSmbFile extends AbstractProcessor { } } +@OnStopped +public void onStopped() { +if (smbClient != null) { +smbClient.close(); +smbClient = null; +} +} + @Override protected Collection customValidate(ValidationContext validationContext) { Collection set = new ArrayList<>(); @@ -300,12 +313,8 @@ public class GetSmbFile extends AbstractProcessor { return set; } -private void initSmbClient() { -initSmbClient(new SMBClient()); -} - -public void
[nifi] branch main updated: NIFI-11107 In ConsumeIMAP and ConsumePOP3 added support for OAUTH based authorization.
This is an automated email from the ASF dual-hosted git repository. turcsanyi 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 56d8879e91 NIFI-11107 In ConsumeIMAP and ConsumePOP3 added support for OAUTH based authorization. 56d8879e91 is described below commit 56d8879e91beb0c980ffe1df8148458b4e58fc25 Author: Tamas Palfy AuthorDate: Tue Jan 17 17:45:11 2023 +0100 NIFI-11107 In ConsumeIMAP and ConsumePOP3 added support for OAUTH based authorization. This closes #6900. Reviewed-by: Nandor Soma Abonyi Signed-off-by: Peter Turcsanyi --- .../nifi-email-processors/pom.xml | 5 ++ .../processors/email/AbstractEmailProcessor.java | 65 +- 2 files changed, 67 insertions(+), 3 deletions(-) diff --git a/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/pom.xml b/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/pom.xml index b340d3bf8c..0a349e85a5 100644 --- a/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/pom.xml +++ b/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/pom.xml @@ -39,6 +39,11 @@ nifi-utils 1.20.0-SNAPSHOT + +org.apache.nifi +nifi-oauth2-provider-api +1.20.0-SNAPSHOT + javax.mail mail diff --git a/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/AbstractEmailProcessor.java b/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/AbstractEmailProcessor.java index 19c64971fe..a8b2cf0dbc 100644 --- a/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/AbstractEmailProcessor.java +++ b/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/AbstractEmailProcessor.java @@ -16,10 +16,13 @@ */ package org.apache.nifi.processors.email; +import org.apache.nifi.annotation.lifecycle.OnScheduled; import org.apache.nifi.annotation.lifecycle.OnStopped; +import org.apache.nifi.components.AllowableValue; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.expression.ExpressionLanguageScope; import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.oauth2.OAuth2AccessTokenProvider; import org.apache.nifi.processor.AbstractProcessor; import org.apache.nifi.processor.ProcessContext; import org.apache.nifi.processor.ProcessSession; @@ -43,6 +46,7 @@ import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Map.Entry; +import java.util.Optional; import java.util.Properties; import java.util.Set; import java.util.concurrent.ArrayBlockingQueue; @@ -56,7 +60,17 @@ import java.util.concurrent.TimeUnit; * @param the type of {@link AbstractMailReceiver}. */ abstract class AbstractEmailProcessor extends AbstractProcessor { - +public static final AllowableValue PASSWORD_BASED_AUTHORIZATION_MODE = new AllowableValue( +"password-based-authorization-mode", +"Use Password", +"Use password" +); + +public static final AllowableValue OAUTH_AUTHORIZATION_MODE = new AllowableValue( +"oauth-based-authorization-mode", +"Use OAuth2", +"Use OAuth2 to acquire access token" +); public static final PropertyDescriptor HOST = new PropertyDescriptor.Builder() .name("host") .displayName("Host Name") @@ -73,6 +87,22 @@ abstract class AbstractEmailProcessor extends Ab .expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY) .addValidator(StandardValidators.PORT_VALIDATOR) .build(); +public static final PropertyDescriptor AUTHORIZATION_MODE = new PropertyDescriptor.Builder() +.name("authorization-mode") +.displayName("Authorization Mode") +.description("How to authorize sending email on the user's behalf.") +.required(true) +.allowableValues(PASSWORD_BASED_AUTHORIZATION_MODE, OAUTH_AUTHORIZATION_MODE) +.defaultValue(PASSWORD_BASED_AUTHORIZATION_MODE.getValue()) +.build(); +public static final PropertyDescriptor OAUTH2_ACCESS_TOKEN_PROVIDER = new PropertyDescriptor.Builder() +.name("oauth2-access-token-provider") +.displayName("OAuth2 Access Token Provider") +.description("OAuth2 service that can provide access tokens.") +.identifiesControllerService(OAuth2AccessTokenProvider.class) +.dependsOn(AUTHORIZATION_MODE, OAUTH_AUTHORIZATION_MODE) +.required(true) +.build(); public static final PropertyDescriptor USER = new PropertyDescriptor.Builder()
[nifi] branch main updated: NIFI-11135 Upgraded Commons CSV from 1.9.0 to 1.10.0
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 6877e84931 NIFI-11135 Upgraded Commons CSV from 1.9.0 to 1.10.0 6877e84931 is described below commit 6877e8493186f6efc4d8e370b6503f85cf0ee70c Author: exceptionfactory AuthorDate: Thu Feb 2 15:58:07 2023 -0600 NIFI-11135 Upgraded Commons CSV from 1.9.0 to 1.10.0 Signed-off-by: Pierre Villard This closes #6921. --- .../nifi-record-utils/nifi-standard-record-utils/pom.xml| 2 +- .../nifi-lookup-services/pom.xml| 2 +- .../nifi-record-serialization-services/pom.xml | 2 +- .../test/java/org/apache/nifi/csv/TestCSVRecordReader.java | 13 +++-- 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-standard-record-utils/pom.xml b/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-standard-record-utils/pom.xml index 26c8cbcbd9..7b2199bdc8 100644 --- a/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-standard-record-utils/pom.xml +++ b/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-standard-record-utils/pom.xml @@ -54,7 +54,7 @@ org.apache.commons commons-csv -1.9.0 +1.10.0 org.apache.commons diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/pom.xml index 053502413a..19473093a6 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/pom.xml +++ b/nifi-nar-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/pom.xml @@ -59,7 +59,7 @@ org.apache.commons commons-csv -1.9.0 +1.10.0 commons-beanutils diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/pom.xml index d307fbda4a..2042711508 100755 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/pom.xml +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/pom.xml @@ -64,7 +64,7 @@ org.apache.commons commons-csv -1.9.0 +1.10.0 com.fasterxml.jackson.dataformat diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/csv/TestCSVRecordReader.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/csv/TestCSVRecordReader.java index da2fd9ee23..8ab596f689 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/csv/TestCSVRecordReader.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/csv/TestCSVRecordReader.java @@ -50,6 +50,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestCSVRecordReader { private final DataType doubleDataType = RecordFieldType.DOUBLE.getDataType(); @@ -826,11 +827,7 @@ public class TestCSVRecordReader { final CSVFormat disallowDuplicateHeadersFormat = CSVFormat.DEFAULT.withFirstRecordAsHeader().withTrim().withQuote('"').withAllowDuplicateHeaderNames(false); try (final InputStream bais = new ByteArrayInputStream(inputData)) { final IllegalArgumentException iae = assertThrows(IllegalArgumentException.class, () -> createReader(bais, schema, disallowDuplicateHeadersFormat)); -assertEquals( -"The header contains a duplicate name: \"id\" in [id, id, name, name, balance, BALANCE, address, city, state, zipCode, country]. " + -"If this is valid then use CSVFormat.withAllowDuplicateHeaderNames().", -iae.getMessage() -); +