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 da8e3184d8 NIFI-15261 Added URL/URI validation for selected properties
representing a URL/URI (#10569)
da8e3184d8 is described below
commit da8e3184d8e4228274286a30e7d7dafa481a851a
Author: dan-s1 <[email protected]>
AuthorDate: Mon Dec 1 11:33:19 2025 -0500
NIFI-15261 Added URL/URI validation for selected properties representing a
URL/URI (#10569)
Signed-off-by: David Handermann <[email protected]>
---
.../java/org/apache/nifi/processors/aws/sqs/DeleteSQS.java | 2 +-
.../java/org/apache/nifi/processors/aws/sqs/GetSQS.java | 2 +-
.../java/org/apache/nifi/processors/aws/sqs/PutSQS.java | 2 +-
.../org/apache/nifi/processors/aws/sqs/TestDeleteSQS.java | 3 +--
.../org/apache/nifi/processors/aws/sqs/TestGetSQS.java | 3 +--
.../org/apache/nifi/processors/aws/sqs/TestPutSQS.java | 3 +--
.../azure/AzureKeyVaultSecretsParameterProvider.java | 2 +-
.../AbstractAzureLogAnalyticsReportingTask.java | 2 +-
.../AzureLogAnalyticsProvenanceReportingTask.java | 14 +++++++-------
.../org/apache/nifi/graph/Neo4JCypherClientService.java | 2 +-
.../nifi/processors/mqtt/common/AbstractMQTTProcessor.java | 2 +-
.../org/apache/nifi/processors/slack/PublishSlack.java | 2 +-
.../java/org/apache/nifi/lookup/RestLookupService.java | 2 +-
13 files changed, 19 insertions(+), 22 deletions(-)
diff --git
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/DeleteSQS.java
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/DeleteSQS.java
index f704aa14e5..20c9f94a3f 100644
---
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/DeleteSQS.java
+++
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/DeleteSQS.java
@@ -52,7 +52,7 @@ public class DeleteSQS extends
AbstractAwsSyncProcessor<SqsClient, SqsClientBuil
public static final PropertyDescriptor QUEUE_URL = new
PropertyDescriptor.Builder()
.name("Queue URL")
.description("The URL of the queue delete from")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .addValidator(StandardValidators.URL_VALIDATOR)
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.required(true)
.build();
diff --git
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/GetSQS.java
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/GetSQS.java
index e31aae988c..f5114ffd49 100644
---
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/GetSQS.java
+++
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/GetSQS.java
@@ -71,7 +71,7 @@ public class GetSQS extends
AbstractAwsSyncProcessor<SqsClient, SqsClientBuilder
public static final PropertyDescriptor QUEUE_URL = new
PropertyDescriptor.Builder()
.name("Queue URL")
.description("The URL of the queue to get messages from")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .addValidator(StandardValidators.URL_VALIDATOR)
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
.required(true)
.build();
diff --git
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/PutSQS.java
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/PutSQS.java
index 51ba1611a5..a16fb8fcba 100644
---
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/PutSQS.java
+++
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/PutSQS.java
@@ -74,7 +74,7 @@ public class PutSQS extends
AbstractAwsSyncProcessor<SqsClient, SqsClientBuilder
public static final PropertyDescriptor QUEUE_URL = new
PropertyDescriptor.Builder()
.name("Queue URL")
.description("The URL of the queue to act upon")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .addValidator(StandardValidators.URL_VALIDATOR)
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.required(true)
.build();
diff --git
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestDeleteSQS.java
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestDeleteSQS.java
index b5d5f2c813..6a478770e9 100644
---
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestDeleteSQS.java
+++
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestDeleteSQS.java
@@ -38,7 +38,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestDeleteSQS {
private TestRunner runner = null;
- private DeleteSQS mockDeleteSQS = null;
private SqsClient mockSQSClient = null;
@BeforeEach
@@ -48,7 +47,7 @@ public class TestDeleteSQS {
.failed(Collections.emptyList())
.build();
Mockito.when(mockSQSClient.deleteMessageBatch(Mockito.any(DeleteMessageBatchRequest.class))).thenReturn(mockResponse);
- mockDeleteSQS = new DeleteSQS() {
+ DeleteSQS mockDeleteSQS = new DeleteSQS() {
@Override
protected SqsClient getClient(ProcessContext context) {
diff --git
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestGetSQS.java
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestGetSQS.java
index 1b9b321127..e29168842d 100644
---
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestGetSQS.java
+++
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestGetSQS.java
@@ -43,13 +43,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestGetSQS {
private TestRunner runner = null;
- private GetSQS mockGetSQS = null;
private SqsClient mockSQSClient = null;
@BeforeEach
public void setUp() {
mockSQSClient = Mockito.mock(SqsClient.class);
- mockGetSQS = new GetSQS() {
+ GetSQS mockGetSQS = new GetSQS() {
@Override
protected SqsClient getClient(ProcessContext context) {
return mockSQSClient;
diff --git
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestPutSQS.java
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestPutSQS.java
index ab2711fbb9..233605d8a8 100644
---
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestPutSQS.java
+++
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestPutSQS.java
@@ -38,13 +38,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class TestPutSQS {
private TestRunner runner = null;
- private PutSQS mockPutSQS = null;
private SqsClient mockSQSClient = null;
@BeforeEach
public void setUp() {
mockSQSClient = Mockito.mock(SqsClient.class);
- mockPutSQS = new PutSQS() {
+ PutSQS mockPutSQS = new PutSQS() {
@Override
protected SqsClient getClient(ProcessContext context) {
return mockSQSClient;
diff --git
a/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-parameter-providers/src/main/java/org/apache/nifi/parameter/azure/AzureKeyVaultSecretsParameterProvider.java
b/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-parameter-providers/src/main/java/org/apache/nifi/parameter/azure/AzureKeyVaultSecretsParameterProvider.java
index c9305170ca..a04aeb3a32 100644
---
a/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-parameter-providers/src/main/java/org/apache/nifi/parameter/azure/AzureKeyVaultSecretsParameterProvider.java
+++
b/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-parameter-providers/src/main/java/org/apache/nifi/parameter/azure/AzureKeyVaultSecretsParameterProvider.java
@@ -61,7 +61,7 @@ public class AzureKeyVaultSecretsParameterProvider extends
AbstractParameterProv
.displayName("Key Vault URI")
.description("Vault URI of the Key Vault that contains the
secrets")
.required(true)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .addValidator(StandardValidators.URI_VALIDATOR)
.build();
public static final PropertyDescriptor GROUP_NAME_PATTERN = new
PropertyDescriptor.Builder()
.name("group-name-pattern")
diff --git
a/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AbstractAzureLogAnalyticsReportingTask.java
b/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AbstractAzureLogAnalyticsReportingTask.java
index 6db63dfbcb..490d4e88d6 100644
---
a/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AbstractAzureLogAnalyticsReportingTask.java
+++
b/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AbstractAzureLogAnalyticsReportingTask.java
@@ -90,7 +90,7 @@ public abstract class AbstractAzureLogAnalyticsReportingTask
extends AbstractRep
static final PropertyDescriptor LOG_ANALYTICS_URL_ENDPOINT_FORMAT = new
PropertyDescriptor.Builder()
.name("Log Analytics URL Endpoint Format").description("Log
Analytics URL Endpoint Format").required(false)
.defaultValue("https://{0}.ods.opinsights.azure.com/api/logs?api-version=2016-04-01")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .addValidator(StandardValidators.URL_VALIDATOR)
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT).build();
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
diff --git
a/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AzureLogAnalyticsProvenanceReportingTask.java
b/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AzureLogAnalyticsProvenanceReportingTask.java
index 529ef73123..ee4d3921e6 100644
---
a/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AzureLogAnalyticsProvenanceReportingTask.java
+++
b/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AzureLogAnalyticsProvenanceReportingTask.java
@@ -32,12 +32,12 @@ import org.apache.nifi.provenance.ProvenanceEventType;
import org.apache.nifi.reporting.ReportingContext;
import org.apache.nifi.reporting.util.provenance.ProvenanceEventConsumer;
-import jakarta.json.Json;
-import jakarta.json.JsonArrayBuilder;
-import jakarta.json.JsonBuilderFactory;
-import jakarta.json.JsonObject;
-import jakarta.json.JsonObjectBuilder;
-import jakarta.json.JsonValue;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonBuilderFactory;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
@@ -161,7 +161,7 @@ public class AzureLogAnalyticsProvenanceReportingTask
extends AbstractAzureLogAn
.description("The URL of this instance to use in the
Content URI of each event.").required(true)
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
.defaultValue("http://${hostname(true)}:8080/nifi")
-
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR).build();
+
.addValidator(StandardValidators.URL_VALIDATOR).build();
static final PropertyDescriptor BATCH_SIZE = new
PropertyDescriptor.Builder()
.name("Batch Size")
diff --git
a/nifi-extension-bundles/nifi-graph-bundle/nifi-neo4j-cypher-service/src/main/java/org/apache/nifi/graph/Neo4JCypherClientService.java
b/nifi-extension-bundles/nifi-graph-bundle/nifi-neo4j-cypher-service/src/main/java/org/apache/nifi/graph/Neo4JCypherClientService.java
index 527073632e..958393bb33 100644
---
a/nifi-extension-bundles/nifi-graph-bundle/nifi-neo4j-cypher-service/src/main/java/org/apache/nifi/graph/Neo4JCypherClientService.java
+++
b/nifi-extension-bundles/nifi-graph-bundle/nifi-neo4j-cypher-service/src/main/java/org/apache/nifi/graph/Neo4JCypherClientService.java
@@ -65,7 +65,7 @@ public class Neo4JCypherClientService extends
AbstractControllerService implemen
.required(true)
.defaultValue("bolt://localhost:7687")
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .addValidator(StandardValidators.URL_VALIDATOR)
.build();
public static final PropertyDescriptor USERNAME = new
PropertyDescriptor.Builder()
diff --git
a/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/common/AbstractMQTTProcessor.java
b/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/common/AbstractMQTTProcessor.java
index c2f6ea9ad5..badf6760a8 100644
---
a/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/common/AbstractMQTTProcessor.java
+++
b/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/common/AbstractMQTTProcessor.java
@@ -115,7 +115,7 @@ public abstract class AbstractMQTTProcessor extends
AbstractSessionFactoryProces
"the processor will use a round-robin algorithm to connect
to the brokers on connection failure.")
.required(true)
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
- .addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+ .addValidator(StandardValidators.URI_LIST_VALIDATOR)
.build();
public static final PropertyDescriptor PROP_CLIENTID = new
PropertyDescriptor.Builder()
diff --git
a/nifi-extension-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/processors/slack/PublishSlack.java
b/nifi-extension-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/processors/slack/PublishSlack.java
index 8d2ea23d0e..37a27c7132 100644
---
a/nifi-extension-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/processors/slack/PublishSlack.java
+++
b/nifi-extension-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/processors/slack/PublishSlack.java
@@ -217,7 +217,7 @@ public class PublishSlack extends AbstractProcessor {
.name("Methods Endpoint Url Prefix")
.description("Customization of the Slack Client. Set the
methodsEndpointUrlPrefix. If you need to set a different URL prefix for Slack
API Methods calls, " +
"you can set the one. Default value:
https://slack.com/api/")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .addValidator(StandardValidators.URL_VALIDATOR)
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.required(false)
.build();
diff --git
a/nifi-extension-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/src/main/java/org/apache/nifi/lookup/RestLookupService.java
b/nifi-extension-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/src/main/java/org/apache/nifi/lookup/RestLookupService.java
index fa93c75364..8a53c13691 100644
---
a/nifi-extension-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/src/main/java/org/apache/nifi/lookup/RestLookupService.java
+++
b/nifi-extension-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/src/main/java/org/apache/nifi/lookup/RestLookupService.java
@@ -95,7 +95,7 @@ public class RestLookupService extends
AbstractControllerService implements Reco
"not flowfile attributes.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.required(true)
- .addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+ .addValidator(StandardValidators.URL_VALIDATOR)
.build();
static final PropertyDescriptor RECORD_READER = new
PropertyDescriptor.Builder()