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 <[email protected]>
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();

Reply via email to