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
The following commit(s) were added to refs/heads/trunk by this push:
new 0d7b74c0 FLUME-3437 - Validate the provider url
0d7b74c0 is described below
commit 0d7b74c0d7391369dcea8cfc3d37684f5d1a6e8f
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 502938a1..21622587 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 5a008afd..6414428a 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();