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()
+            );
+        }
+    }
+}

Reply via email to