This is an automated email from the ASF dual-hosted git repository.
exceptionfactory pushed a commit to branch support/nifi-1.x
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/support/nifi-1.x by this push:
new dab3d6bfee NIFI-11205 Added logging for deprecated Kafka 2_6 Kerberos
properties
dab3d6bfee is described below
commit dab3d6bfee78b78d1207b6877901db15ec320fad
Author: Nandor Soma Abonyi <[email protected]>
AuthorDate: Sun Feb 26 16:09:16 2023 +0100
NIFI-11205 Added logging for deprecated Kafka 2_6 Kerberos properties
- Added Kerberos User Service property to KafkaRecordSink_2_6
This closes #6990
Signed-off-by: David Handermann <[email protected]>
---
.../kafka/pubsub/ConsumeKafkaRecord_2_6.java | 4 ++
.../processors/kafka/pubsub/ConsumeKafka_2_6.java | 3 ++
.../kafka/pubsub/PublishKafkaRecord_2_6.java | 3 ++
.../processors/kafka/pubsub/PublishKafka_2_6.java | 3 ++
.../record/sink/kafka/KafkaRecordSink_2_6.java | 3 ++
.../nifi-kafka-bundle/nifi-kafka-shared/pom.xml | 4 ++
.../validation/KafkaDeprecationValidator.java | 57 ++++++++++++++++++++++
7 files changed, 77 insertions(+)
diff --git
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumeKafkaRecord_2_6.java
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumeKafkaRecord_2_6.java
index 025a830552..1236775e1a 100644
---
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumeKafkaRecord_2_6.java
+++
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumeKafkaRecord_2_6.java
@@ -45,6 +45,7 @@ import org.apache.nifi.kafka.shared.property.KeyFormat;
import org.apache.nifi.kafka.shared.property.provider.KafkaPropertyProvider;
import
org.apache.nifi.kafka.shared.property.provider.StandardKafkaPropertyProvider;
import org.apache.nifi.kafka.shared.validation.DynamicPropertyValidator;
+import org.apache.nifi.kafka.shared.validation.KafkaDeprecationValidator;
import org.apache.nifi.logging.ComponentLog;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
@@ -314,6 +315,7 @@ public class ConsumeKafkaRecord_2_6 extends
AbstractProcessor implements KafkaCl
descriptors.add(SECURITY_PROTOCOL);
descriptors.add(SASL_MECHANISM);
descriptors.add(KERBEROS_CREDENTIALS_SERVICE);
+ descriptors.add(SELF_CONTAINED_KERBEROS_USER_SERVICE);
descriptors.add(KERBEROS_SERVICE_NAME);
descriptors.add(KERBEROS_PRINCIPAL);
descriptors.add(KERBEROS_KEYTAB);
@@ -368,6 +370,8 @@ public class ConsumeKafkaRecord_2_6 extends
AbstractProcessor implements KafkaCl
@Override
protected Collection<ValidationResult> customValidate(final
ValidationContext validationContext) {
+ KafkaDeprecationValidator.validate(getClass(), getIdentifier(),
validationContext);
+
final KafkaClientCustomValidationFunction validationFunction = new
KafkaClientCustomValidationFunction();
final Collection<ValidationResult> validationResults =
validationFunction.apply(validationContext);
diff --git
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumeKafka_2_6.java
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumeKafka_2_6.java
index 076cd474bb..ccb7d9628e 100644
---
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumeKafka_2_6.java
+++
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/ConsumeKafka_2_6.java
@@ -41,6 +41,7 @@ import
org.apache.nifi.kafka.shared.component.KafkaClientComponent;
import org.apache.nifi.kafka.shared.property.provider.KafkaPropertyProvider;
import
org.apache.nifi.kafka.shared.property.provider.StandardKafkaPropertyProvider;
import org.apache.nifi.kafka.shared.validation.DynamicPropertyValidator;
+import org.apache.nifi.kafka.shared.validation.KafkaDeprecationValidator;
import org.apache.nifi.logging.ComponentLog;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.components.ConfigVerificationResult;
@@ -319,6 +320,8 @@ public class ConsumeKafka_2_6 extends AbstractProcessor
implements KafkaClientCo
@Override
protected Collection<ValidationResult> customValidate(final
ValidationContext validationContext) {
+ KafkaDeprecationValidator.validate(getClass(), getIdentifier(),
validationContext);
+
final KafkaClientCustomValidationFunction validationFunction = new
KafkaClientCustomValidationFunction();
final Collection<ValidationResult> validationResults =
validationFunction.apply(validationContext);
diff --git
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/PublishKafkaRecord_2_6.java
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/PublishKafkaRecord_2_6.java
index 8b886584c5..f15a97e98a 100644
---
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/PublishKafkaRecord_2_6.java
+++
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/PublishKafkaRecord_2_6.java
@@ -45,6 +45,7 @@ import
org.apache.nifi.kafka.shared.property.provider.KafkaPropertyProvider;
import org.apache.nifi.kafka.shared.component.KafkaPublishComponent;
import
org.apache.nifi.kafka.shared.property.provider.StandardKafkaPropertyProvider;
import org.apache.nifi.kafka.shared.validation.DynamicPropertyValidator;
+import org.apache.nifi.kafka.shared.validation.KafkaDeprecationValidator;
import org.apache.nifi.logging.ComponentLog;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.DataUnit;
@@ -391,6 +392,8 @@ public class PublishKafkaRecord_2_6 extends
AbstractProcessor implements KafkaPu
@Override
protected Collection<ValidationResult> customValidate(final
ValidationContext validationContext) {
+ KafkaDeprecationValidator.validate(getClass(), getIdentifier(),
validationContext);
+
final KafkaClientCustomValidationFunction validationFunction = new
KafkaClientCustomValidationFunction();
final Collection<ValidationResult> results =
validationFunction.apply(validationContext);
diff --git
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/PublishKafka_2_6.java
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/PublishKafka_2_6.java
index 2a08b1efb5..ca1e381acf 100644
---
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/PublishKafka_2_6.java
+++
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/processors/kafka/pubsub/PublishKafka_2_6.java
@@ -44,6 +44,7 @@ import
org.apache.nifi.kafka.shared.property.provider.KafkaPropertyProvider;
import org.apache.nifi.kafka.shared.component.KafkaPublishComponent;
import
org.apache.nifi.kafka.shared.property.provider.StandardKafkaPropertyProvider;
import org.apache.nifi.kafka.shared.validation.DynamicPropertyValidator;
+import org.apache.nifi.kafka.shared.validation.KafkaDeprecationValidator;
import org.apache.nifi.logging.ComponentLog;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.DataUnit;
@@ -348,6 +349,8 @@ public class PublishKafka_2_6 extends AbstractProcessor
implements KafkaPublishC
@Override
protected Collection<ValidationResult> customValidate(final
ValidationContext validationContext) {
+ KafkaDeprecationValidator.validate(getClass(), getIdentifier(),
validationContext);
+
final KafkaClientCustomValidationFunction validationFunction = new
KafkaClientCustomValidationFunction();
final Collection<ValidationResult> results =
validationFunction.apply(validationContext);
diff --git
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/record/sink/kafka/KafkaRecordSink_2_6.java
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/record/sink/kafka/KafkaRecordSink_2_6.java
index a71ef6218e..1156a12914 100644
---
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/record/sink/kafka/KafkaRecordSink_2_6.java
+++
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-2-6-processors/src/main/java/org/apache/nifi/record/sink/kafka/KafkaRecordSink_2_6.java
@@ -40,6 +40,7 @@ import
org.apache.nifi.kafka.shared.property.provider.KafkaPropertyProvider;
import
org.apache.nifi.kafka.shared.property.provider.StandardKafkaPropertyProvider;
import
org.apache.nifi.kafka.shared.validation.KafkaClientCustomValidationFunction;
import org.apache.nifi.kafka.shared.validation.DynamicPropertyValidator;
+import org.apache.nifi.kafka.shared.validation.KafkaDeprecationValidator;
import org.apache.nifi.processor.DataUnit;
import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.record.sink.RecordSinkService;
@@ -171,6 +172,7 @@ public class KafkaRecordSink_2_6 extends
AbstractControllerService implements Ka
properties.add(MESSAGE_HEADER_ENCODING);
properties.add(SECURITY_PROTOCOL);
properties.add(KERBEROS_CREDENTIALS_SERVICE);
+ properties.add(SELF_CONTAINED_KERBEROS_USER_SERVICE);
properties.add(KERBEROS_SERVICE_NAME);
properties.add(SSL_CONTEXT_SERVICE);
properties.add(MAX_REQUEST_SIZE);
@@ -198,6 +200,7 @@ public class KafkaRecordSink_2_6 extends
AbstractControllerService implements Ka
@Override
protected Collection<ValidationResult> customValidate(final
ValidationContext validationContext) {
+ KafkaDeprecationValidator.validate(getClass(), getIdentifier(),
validationContext);
return new
KafkaClientCustomValidationFunction().apply(validationContext);
}
diff --git a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-shared/pom.xml
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-shared/pom.xml
index d4de0d1437..993e14da71 100644
--- a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-shared/pom.xml
+++ b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-shared/pom.xml
@@ -47,6 +47,10 @@
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-security-kerberos-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-deprecation-log</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-mock</artifactId>
diff --git
a/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-shared/src/main/java/org/apache/nifi/kafka/shared/validation/KafkaDeprecationValidator.java
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-shared/src/main/java/org/apache/nifi/kafka/shared/validation/KafkaDeprecationValidator.java
new file mode 100644
index 0000000000..2555baf369
--- /dev/null
+++
b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-shared/src/main/java/org/apache/nifi/kafka/shared/validation/KafkaDeprecationValidator.java
@@ -0,0 +1,57 @@
+/*
+ * 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.kafka.shared.validation;
+
+import org.apache.nifi.components.PropertyValue;
+import org.apache.nifi.components.ValidationContext;
+import org.apache.nifi.deprecation.log.DeprecationLogger;
+import org.apache.nifi.deprecation.log.DeprecationLoggerFactory;
+
+import static
org.apache.nifi.kafka.shared.component.KafkaClientComponent.KERBEROS_CREDENTIALS_SERVICE;
+import static
org.apache.nifi.kafka.shared.component.KafkaClientComponent.KERBEROS_KEYTAB;
+import static
org.apache.nifi.kafka.shared.component.KafkaClientComponent.KERBEROS_PRINCIPAL;
+import static
org.apache.nifi.kafka.shared.component.KafkaClientComponent.SELF_CONTAINED_KERBEROS_USER_SERVICE;
+
+public class KafkaDeprecationValidator {
+
+ public static void validate(Class<?> componentClass, final String
identifier, final ValidationContext validationContext) {
+ final DeprecationLogger deprecationLogger =
DeprecationLoggerFactory.getLogger(componentClass);
+
+ final PropertyValue credentialsServiceProperty =
validationContext.getProperty(KERBEROS_CREDENTIALS_SERVICE);
+ final PropertyValue principalProperty =
validationContext.getProperty(KERBEROS_PRINCIPAL).evaluateAttributeExpressions();
+ final PropertyValue keyTabProperty =
validationContext.getProperty(KERBEROS_KEYTAB).evaluateAttributeExpressions();
+
+ if (credentialsServiceProperty.isSet()) {
+ deprecationLogger.warn("{}[id={}] [{}] Property should be replaced
with [{}] Property",
+ componentClass.getSimpleName(),
+ identifier,
+ KERBEROS_CREDENTIALS_SERVICE.getDisplayName(),
+ SELF_CONTAINED_KERBEROS_USER_SERVICE.getDisplayName()
+ );
+ }
+
+ if (principalProperty.isSet() || keyTabProperty.isSet()) {
+ deprecationLogger.warn("{}[id={}] [{}] and [{}] Properties should
be replaced with [{}] Property",
+ componentClass.getSimpleName(),
+ identifier,
+ KERBEROS_PRINCIPAL.getDisplayName(),
+ KERBEROS_KEYTAB.getDisplayName(),
+ SELF_CONTAINED_KERBEROS_USER_SERVICE.getDisplayName()
+ );
+ }
+ }
+}