You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by rg...@apache.org on 2022/10/08 04:00:15 UTC

[flume] 02/14: FLUME-3437 - Validate the provider url

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

rgoers pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/flume.git

commit 9f2807d5519f0ab25025f7a73bd1a8730fabba6f
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Thu Sep 22 14:43:32 2022 -0700

    FLUME-3437 - Validate the provider url
---
 .../src/main/java/org/apache/flume/source/jms/JMSSource.java      | 8 ++++++++
 .../src/test/java/org/apache/flume/source/jms/TestJMSSource.java  | 7 +++++++
 2 files changed, 15 insertions(+)

diff --git a/flume-ng-sources/flume-jms-source/src/main/java/org/apache/flume/source/jms/JMSSource.java b/flume-ng-sources/flume-jms-source/src/main/java/org/apache/flume/source/jms/JMSSource.java
index 502938a1b..216225871 100644
--- a/flume-ng-sources/flume-jms-source/src/main/java/org/apache/flume/source/jms/JMSSource.java
+++ b/flume-ng-sources/flume-jms-source/src/main/java/org/apache/flume/source/jms/JMSSource.java
@@ -100,6 +100,14 @@ public class JMSSource extends AbstractPollableSource implements BatchSizeSuppor
         JMSSourceConfiguration.INITIAL_CONTEXT_FACTORY, "").trim();
 
     providerUrl = context.getString(JMSSourceConfiguration.PROVIDER_URL, "").trim();
+    try {
+      URI uri = new URI(providerUrl);
+      String scheme = uri.getScheme();
+      assertTrue(scheme == null || scheme.equals(JAVA_SCHEME),
+          "Unsupported JNDI URI: " + providerUrl);
+    } catch (URISyntaxException ex) {
+      logger.warn("Invalid JNDI URI - {}", providerUrl);
+    }
 
     destinationName = context.getString(JMSSourceConfiguration.DESTINATION_NAME, "").trim();
 
diff --git a/flume-ng-sources/flume-jms-source/src/test/java/org/apache/flume/source/jms/TestJMSSource.java b/flume-ng-sources/flume-jms-source/src/test/java/org/apache/flume/source/jms/TestJMSSource.java
index 5a008afd1..6414428aa 100644
--- a/flume-ng-sources/flume-jms-source/src/test/java/org/apache/flume/source/jms/TestJMSSource.java
+++ b/flume-ng-sources/flume-jms-source/src/test/java/org/apache/flume/source/jms/TestJMSSource.java
@@ -144,6 +144,13 @@ public class TestJMSSource extends JMSMessageConsumerTestBase {
     source.configure(context);
   }
 
+  @Test(expected = IllegalArgumentException.class)
+  public void testConfigureWithLdapProvider() throws Exception {
+    context.put(JMSSourceConfiguration.PROVIDER_URL, "ldap://localhost:389/test");
+    source.configure(context);
+  }
+
+
   @Test
   public void testStartConsumerCreateThrowsException() throws Exception {
     doThrow(new RuntimeException("Expected")).when(source).createConsumer();