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