This is an automated email from the ASF dual-hosted git repository.

chriss 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 f8f906d518 NIFI-14304: Improve ElasticSearchClientService HTTP HOST 
validation.
f8f906d518 is described below

commit f8f906d518e0fa83cf7915eb7fc3e1ff3794c8fb
Author: Bob Paulin <[email protected]>
AuthorDate: Sat Mar 1 13:23:12 2025 -0600

    NIFI-14304: Improve ElasticSearchClientService HTTP HOST validation.
    
    Signed-off-by: Chris Sampson <[email protected]>
    
    This closes #9756.
---
 .../org/apache/nifi/elasticsearch/ElasticSearchClientService.java | 8 ++++++--
 .../apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java | 6 +++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git 
a/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service-api/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientService.java
 
b/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service-api/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientService.java
index b1c64cc12d..c7ed466d50 100644
--- 
a/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service-api/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientService.java
+++ 
b/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service-api/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientService.java
@@ -35,8 +35,12 @@ public interface ElasticSearchClientService extends 
ControllerService, Verifiabl
     PropertyDescriptor HTTP_HOSTS = new PropertyDescriptor.Builder()
             .name("el-cs-http-hosts")
             .displayName("HTTP Hosts")
-            .description("A comma-separated list of HTTP hosts that host 
Elasticsearch query nodes. " +
-                    "Note that the Host is included in requests as a header 
(typically including domain and port, e.g. elasticsearch:9200).")
+            .description("""
+                    A comma-separated list of HTTP hosts that host 
Elasticsearch query nodes.
+                    The HTTP Hosts should be valid URIs including protocol, 
domain and port for each entry.
+                    For example "https://elasticsearch1:9200, 
https://elasticsearch2:9200";.
+                    Note that the Host is included in requests as a header 
(typically including domain and port, e.g. elasticsearch:9200).
+                    """)
             .required(true)
             .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
diff --git 
a/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java
 
b/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java
index 9bb3414733..1fea28a3fa 100644
--- 
a/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java
+++ 
b/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java
@@ -254,7 +254,11 @@ public class ElasticSearchClientServiceImpl extends 
AbstractControllerService im
             verifySniffer(context, verifyClient, tokenProvider, snifferResult);
         } catch (final MalformedURLException mue) {
             clientSetupResult.outcome(ConfigVerificationResult.Outcome.FAILED)
-                    .explanation("Incorrect/invalid " + 
ElasticSearchClientService.HTTP_HOSTS.getDisplayName());
+                    .explanation("""
+                            Incorrect/invalid %s.
+                            The HTTP Hosts should be valid URIs including 
protocol, domain and port for each entry.
+                            For example "https://elasticsearch1:9200, 
https://elasticsearch2:9200";.
+                            
""".formatted(ElasticSearchClientService.HTTP_HOSTS.getDisplayName()));
         } catch (final InitializationException ie) {
             clientSetupResult.outcome(ConfigVerificationResult.Outcome.FAILED)
                     .explanation("Incorrect/invalid " + 
ElasticSearchClientService.PROP_SSL_CONTEXT_SERVICE.getDisplayName());

Reply via email to