You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/08/09 09:44:16 UTC
[camel] 02/03: CAMEL-13845: camel-telegram - Do not show
authorizationToken in uri. CAMEL-13847: camel-webhook - Should be lenient
properties and fixed creating delegate uri with right set of parameters.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit b7810a9f19903372cb3f2975e5b55c712eeb2889
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Aug 9 11:42:38 2019 +0200
CAMEL-13845: camel-telegram - Do not show authorizationToken in uri. CAMEL-13847: camel-webhook - Should be lenient properties and fixed creating delegate uri with right set of parameters.
---
.../src/main/docs/telegram-component.adoc | 8 ++--
.../component/telegram/TelegramComponent.java | 19 +++++++---
.../component/telegram/TelegramConfiguration.java | 32 +---------------
.../camel/component/telegram/TelegramEndpoint.java | 2 +-
.../component/telegram/TelegramChatBotTest.java | 4 +-
.../telegram/TelegramComponentParametersTest.java | 4 +-
.../telegram/TelegramConfigurationTest.java | 3 +-
.../telegram/TelegramConsumerChannelPostTest.java | 2 +-
.../TelegramConsumerEmptyResponseTest.java | 2 +-
.../TelegramConsumerFallbackConversionTest.java | 2 +-
.../telegram/TelegramConsumerMappingTest.java | 2 +-
.../TelegramConsumerMediaDocumentTest.java | 2 +-
.../telegram/TelegramConsumerMediaPhotoTest.java | 2 +-
.../telegram/TelegramConsumerMediaVideoTest.java | 2 +-
.../telegram/TelegramConsumerMultipleTest.java | 2 +-
.../telegram/TelegramConsumerServiceErrorTest.java | 2 +-
.../telegram/TelegramConsumerSingleTest.java | 2 +-
.../TelegramProducerChatIdResolutionTest.java | 2 +-
.../telegram/TelegramProducerLocationTest.java | 2 +-
.../telegram/TelegramProducerMediaTest.java | 2 +-
.../telegram/TelegramWebhookCallTest.java | 2 +-
.../telegram/TelegramWebhookRegistrationTest.java | 4 +-
.../camel/component/webhook/WebhookComponent.java | 5 ++-
.../camel/component/webhook/WebhookEndpoint.java | 5 +++
.../dsl/TelegramEndpointBuilderFactory.java | 44 ++++++++++++++++++++--
.../java/org/apache/camel/util/URISupport.java | 2 +-
.../java/org/apache/camel/util/URISupportTest.java | 12 ++++--
examples/camel-example-telegram/README.adoc | 4 +-
examples/camel-example-telegram/pom.xml | 6 ++-
.../apache/camel/example/telegram/Application.java | 3 +-
.../example/telegram/TelegramRouteBuilder.java | 4 +-
31 files changed, 111 insertions(+), 78 deletions(-)
diff --git a/components/camel-telegram/src/main/docs/telegram-component.adoc b/components/camel-telegram/src/main/docs/telegram-component.adoc
index ca5c81c..a373813 100644
--- a/components/camel-telegram/src/main/docs/telegram-component.adoc
+++ b/components/camel-telegram/src/main/docs/telegram-component.adoc
@@ -63,23 +63,22 @@ The Telegram component supports 3 options, which are listed below.
The Telegram endpoint is configured using URI syntax:
----
-telegram:type/authorizationToken
+telegram:type
----
with the following path and query parameters:
-=== Path Parameters (2 parameters):
+=== Path Parameters (1 parameters):
[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *type* | *Required* The endpoint type. Currently, only the 'bots' type is supported. | | String
-| *authorizationToken* | *Required* The authorization token for using the bot (ask the BotFather) | | String
|===
-=== Query Parameters (26 parameters):
+=== Query Parameters (27 parameters):
[width="100%",cols="2,5,^1,2",options="header"]
@@ -111,6 +110,7 @@ with the following path and query parameters:
| *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | boolean
| *proxyHost* (proxy) | HTTP proxy host which could be used when sending out the message. | | String
| *proxyPort* (proxy) | HTTP proxy port which could be used when sending out the message. | | Integer
+| *authorizationToken* (security) | *Required* The authorization token for using the bot (ask the BotFather) | | String
|===
// endpoint options: END
// spring-boot-auto-configure options: START
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java
index 7ef7232..1242b69 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramComponent.java
@@ -24,9 +24,6 @@ import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.DefaultComponent;
import org.apache.camel.util.ObjectHelper;
-/**
- * The Camel component for Telegram.
- */
@Component("telegram")
public class TelegramComponent extends DefaultComponent {
@@ -39,9 +36,21 @@ public class TelegramComponent extends DefaultComponent {
@Override
protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
TelegramConfiguration configuration = new TelegramConfiguration();
+
+ // ignore trailing slash
+ if (remaining.endsWith("/")) {
+ remaining = remaining.substring(0, remaining.length() - 1);
+ }
+
+ configuration.setType(remaining);
+
setProperties(configuration, parameters);
- if (ObjectHelper.isNotEmpty(remaining)) {
- configuration.updatePathConfig(remaining, this.getAuthorizationToken());
+ if (configuration.getAuthorizationToken() == null) {
+ configuration.setAuthorizationToken(authorizationToken);
+ }
+
+ if (configuration.getAuthorizationToken() == null) {
+ throw new IllegalArgumentException("AuthorizationToken must be configured on either component or endpoint for telegram: " + uri);
}
if (TelegramConfiguration.ENDPOINT_TYPE_BOTS.equals(configuration.getType())) {
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java
index bc34976..4e07e64 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramConfiguration.java
@@ -33,7 +33,7 @@ public class TelegramConfiguration {
@Metadata(required = true)
private String type;
- @UriPath(description = "The authorization token for using the bot (ask the BotFather)", label = "security", secret = true)
+ @UriParam(description = "The authorization token for using the bot (ask the BotFather)", label = "security", secret = true)
@Metadata(required = true)
private String authorizationToken;
@@ -59,36 +59,6 @@ public class TelegramConfiguration {
public TelegramConfiguration() {
}
- /**
- * Sets the remaining configuration parameters available in the URI.
- *
- * @param remaining the URI part after the scheme
- * @param defaultAuthorizationToken the default authorization token to use if not present in the URI
- */
- public void updatePathConfig(String remaining, String defaultAuthorizationToken) {
- String[] parts = remaining.split("/");
- if (parts.length == 0 || parts.length > 2) {
- throw new IllegalArgumentException("Unexpected URI format. Expected 'bots' or 'bots/<authorizationToken>', found '" + remaining + "'");
- }
-
- String type = parts[0];
- if (!type.equals(ENDPOINT_TYPE_BOTS)) {
- throw new IllegalArgumentException("Unexpected endpoint type. Expected 'bots', found '" + type + "'");
- }
-
- String authorizationToken = defaultAuthorizationToken;
- if (parts.length > 1) {
- authorizationToken = parts[1];
- }
-
- if (authorizationToken == null || authorizationToken.trim().length() == 0) {
- throw new IllegalArgumentException("The authorization token must be provided and cannot be empty");
- }
-
- this.type = type;
- this.authorizationToken = authorizationToken;
- }
-
public String getType() {
return type;
}
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java
index e3e662c..4396f6e 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java
@@ -39,7 +39,7 @@ import static org.apache.camel.component.telegram.util.TelegramMessageHelper.pop
/**
* The telegram component provides access to the <a href="https://core.telegram.org/bots/api">Telegram Bot API</a>.
*/
-@UriEndpoint(firstVersion = "2.18.0", scheme = "telegram", title = "Telegram", syntax = "telegram:type/authorizationToken", label = "chat")
+@UriEndpoint(firstVersion = "2.18.0", scheme = "telegram", title = "Telegram", syntax = "telegram:type", label = "chat")
public class TelegramEndpoint extends ScheduledPollEndpoint implements WebhookCapableEndpoint {
private static final Logger LOG = LoggerFactory.getLogger(TelegramEndpoint.class);
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramChatBotTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramChatBotTest.java
index 0f46a13..fc97188 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramChatBotTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramChatBotTest.java
@@ -105,10 +105,10 @@ public class TelegramChatBotTest extends TelegramTestSupport {
@Override
public void configure() throws Exception {
- from("telegram:bots/mock-token")
+ from("telegram:bots?authorizationToken=mock-token")
.bean(TelegramChatBotTest.this, "chatBotProcess1")
.bean(TelegramChatBotTest.this, "chatBotProcess2")
- .to("telegram:bots/mock-token");
+ .to("telegram:bots?authorizationToken=mock-token");
}
};
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramComponentParametersTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramComponentParametersTest.java
index 745bf49..a26e071 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramComponentParametersTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramComponentParametersTest.java
@@ -31,10 +31,10 @@ public class TelegramComponentParametersTest extends TelegramTestSupport {
TelegramEndpoint ep1 = (TelegramEndpoint) component.createEndpoint("telegram:bots");
assertEquals("DEFAULT", ep1.getConfiguration().getAuthorizationToken());
- TelegramEndpoint ep2 = (TelegramEndpoint) component.createEndpoint("telegram:bots/CUSTOM");
+ TelegramEndpoint ep2 = (TelegramEndpoint) component.createEndpoint("telegram:bots?authorizationToken=CUSTOM");
assertEquals("CUSTOM", ep2.getConfiguration().getAuthorizationToken());
- TelegramEndpoint ep3 = (TelegramEndpoint) component.createEndpoint("telegram:bots/ANOTHER?chatId=123");
+ TelegramEndpoint ep3 = (TelegramEndpoint) component.createEndpoint("telegram:bots?authorizationToken=ANOTHER&chatId=123");
assertEquals("ANOTHER", ep3.getConfiguration().getAuthorizationToken());
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConfigurationTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConfigurationTest.java
index 31925e4..8051eda 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConfigurationTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConfigurationTest.java
@@ -26,7 +26,6 @@ import org.junit.Test;
*/
public class TelegramConfigurationTest extends TelegramTestSupport {
-
@Test
public void testChatBotResult() throws Exception {
TelegramEndpoint endpoint = (TelegramEndpoint) context().getEndpoints().stream().filter(e -> e instanceof TelegramEndpoint).findAny().get();
@@ -50,7 +49,7 @@ public class TelegramConfigurationTest extends TelegramTestSupport {
public void configure() throws Exception {
from("direct:telegram")
- .to("telegram:bots/mock-token?chatId=12345&delay=2000&timeout=10&limit=60&proxyHost=127.0.0.1&proxyPort=1234");
+ .to("telegram:bots/?authorizationToken=mock-token&chatId=12345&delay=2000&timeout=10&limit=60&proxyHost=127.0.0.1&proxyPort=1234");
}
};
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerChannelPostTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerChannelPostTest.java
index d544ca7..32e0928 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerChannelPostTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerChannelPostTest.java
@@ -84,7 +84,7 @@ public class TelegramConsumerChannelPostTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("telegram:bots/mock-token")
+ from("telegram:bots?authorizationToken=mock-token")
.to("mock:telegram");
}
};
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerEmptyResponseTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerEmptyResponseTest.java
index a7bd949..6aeeab7 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerEmptyResponseTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerEmptyResponseTest.java
@@ -58,7 +58,7 @@ public class TelegramConsumerEmptyResponseTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("telegram:bots/mock-token").to("mock:telegram");
+ from("telegram:bots?authorizationToken=mock-token").to("mock:telegram");
}
};
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerFallbackConversionTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerFallbackConversionTest.java
index 8401b3e..1efe3bf 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerFallbackConversionTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerFallbackConversionTest.java
@@ -66,7 +66,7 @@ public class TelegramConsumerFallbackConversionTest extends TelegramTestSupport
@Override
public void configure() throws Exception {
from("direct:message")
- .to("telegram:bots/mock-token?chatId=1234");
+ .to("telegram:bots?authorizationToken=mock-token&chatId=1234");
}
};
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMappingTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMappingTest.java
index 8df8568..611bcac 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMappingTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMappingTest.java
@@ -122,7 +122,7 @@ public class TelegramConsumerMappingTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("telegram:bots/mock-token").to("mock:telegram");
+ from("telegram:bots?authorizationToken=mock-token").to("mock:telegram");
}
};
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaDocumentTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaDocumentTest.java
index 6c9cc5f..0efcdf3 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaDocumentTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaDocumentTest.java
@@ -79,7 +79,7 @@ public class TelegramConsumerMediaDocumentTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("telegram:bots/mock-token")
+ from("telegram:bots?authorizationToken=mock-token")
.to("mock:telegram");
}
};
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaPhotoTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaPhotoTest.java
index f124290..c1b678f 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaPhotoTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaPhotoTest.java
@@ -69,7 +69,7 @@ public class TelegramConsumerMediaPhotoTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("telegram:bots/mock-token")
+ from("telegram:bots?authorizationToken=mock-token")
.to("mock:telegram");
}
};
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaVideoTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaVideoTest.java
index 5e1b02a..a904eef 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaVideoTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMediaVideoTest.java
@@ -80,7 +80,7 @@ public class TelegramConsumerMediaVideoTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("telegram:bots/mock-token")
+ from("telegram:bots?authorizationToken=mock-token")
.to("mock:telegram");
}
};
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMultipleTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMultipleTest.java
index 98f8765..e694397 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMultipleTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerMultipleTest.java
@@ -65,7 +65,7 @@ public class TelegramConsumerMultipleTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("telegram:bots/mock-token")
+ from("telegram:bots?authorizationToken=mock-token")
.convertBodyTo(String.class)
.to("mock:telegram");
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerServiceErrorTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerServiceErrorTest.java
index 8df6bf0..f6aa98d 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerServiceErrorTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerServiceErrorTest.java
@@ -68,7 +68,7 @@ public class TelegramConsumerServiceErrorTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("telegram:bots/mock-token")
+ from("telegram:bots?authorizationToken=mock-token")
.convertBodyTo(String.class)
.to("mock:telegram");
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerSingleTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerSingleTest.java
index c85378a..16ddb62 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerSingleTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerSingleTest.java
@@ -63,7 +63,7 @@ public class TelegramConsumerSingleTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("telegram:bots/mock-token")
+ from("telegram:bots?authorizationToken=mock-token")
.convertBodyTo(String.class)
.to("mock:telegram");
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerChatIdResolutionTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerChatIdResolutionTest.java
index af99e43..cec6081 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerChatIdResolutionTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerChatIdResolutionTest.java
@@ -77,7 +77,7 @@ public class TelegramProducerChatIdResolutionTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("direct:telegram").to("telegram:bots/mock-token?chatId=my-id");
+ from("direct:telegram").to("telegram:bots?authorizationToken=mock-token&chatId=my-id");
}
};
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java
index 3dc6cbc..7ae0fb4 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java
@@ -110,7 +110,7 @@ public class TelegramProducerLocationTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() {
- from("direct:telegram").to("telegram:bots/mock-token?chatId=my-id");
+ from("direct:telegram").to("telegram:bots?authorizationToken=mock-token&chatId=my-id");
}
};
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerMediaTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerMediaTest.java
index 413784f..873b56b 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerMediaTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerMediaTest.java
@@ -240,7 +240,7 @@ public class TelegramProducerMediaTest extends TelegramTestSupport {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("direct:telegram").to("telegram:bots/mock-token?chatId=my-id");
+ from("direct:telegram").to("telegram:bots?authorizationToken=mock-token&chatId=my-id");
}
};
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookCallTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookCallTest.java
index 738ff31..6c77784 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookCallTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookCallTest.java
@@ -64,7 +64,7 @@ public class TelegramWebhookCallTest extends TelegramTestSupport {
.host("localhost")
.port(port);
- from("webhook:telegram:bots/mock-token?webhookAutoRegister=false")
+ from("webhook:telegram:bots?authorizationToken=mock-token&webhookAutoRegister=false")
.id("webhook")
.convertBodyTo(String.class)
.to("mock:endpoint");
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookRegistrationTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookRegistrationTest.java
index 026fad1..168d252 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookRegistrationTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramWebhookRegistrationTest.java
@@ -40,7 +40,7 @@ public class TelegramWebhookRegistrationTest extends TelegramTestSupport {
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("webhook:telegram:bots/mock-token").to("mock:endpoint");
+ from("webhook:telegram:bots?authorizationToken=mock-token").to("mock:endpoint");
}
});
context().start();
@@ -55,7 +55,7 @@ public class TelegramWebhookRegistrationTest extends TelegramTestSupport {
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("webhook:telegram:bots/mock-token?webhookAutoRegister=false").to("mock:endpoint");
+ from("webhook:telegram:bots?authorizationToken=mock-token&webhookAutoRegister=false").to("mock:endpoint");
}
});
context().start();
diff --git a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookComponent.java b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookComponent.java
index 845011c..681fef4 100644
--- a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookComponent.java
+++ b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookComponent.java
@@ -24,6 +24,7 @@ import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.DefaultComponent;
import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
/**
* A Camel meta-component for exposing other components through webhooks.
@@ -51,8 +52,8 @@ public class WebhookComponent extends DefaultComponent {
configuration.setRestConfiguration(restConfig);
// we need to apply the params here
- if (parameters != null && parameters.size() > 0) {
- delegateUri = delegateUri + "?" + uri.substring(uri.indexOf('?') + 1);
+ if (parameters != null && !parameters.isEmpty()) {
+ delegateUri = delegateUri + "?" + URISupport.createQueryString(parameters);
}
configuration.setEndpointUri(delegateUri);
diff --git a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java
index a1c0f63..a8fa0c0 100644
--- a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java
+++ b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/WebhookEndpoint.java
@@ -97,4 +97,9 @@ public class WebhookEndpoint extends DefaultEndpoint implements DelegateEndpoint
public WebhookCapableEndpoint getEndpoint() {
return delegateEndpoint;
}
+
+ @Override
+ public boolean isLenientProperties() {
+ return true;
+ }
}
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/TelegramEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/TelegramEndpointBuilderFactory.java
index f04090b..698399d 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/TelegramEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/TelegramEndpointBuilderFactory.java
@@ -545,6 +545,19 @@ public interface TelegramEndpointBuilderFactory {
setProperty("proxyPort", proxyPort);
return this;
}
+ /**
+ * The authorization token for using the bot (ask the BotFather).
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Required: true
+ * Group: security
+ */
+ default TelegramEndpointConsumerBuilder authorizationToken(
+ String authorizationToken) {
+ setProperty("authorizationToken", authorizationToken);
+ return this;
+ }
}
/**
@@ -798,6 +811,19 @@ public interface TelegramEndpointBuilderFactory {
setProperty("proxyPort", proxyPort);
return this;
}
+ /**
+ * The authorization token for using the bot (ask the BotFather).
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Required: true
+ * Group: security
+ */
+ default TelegramEndpointProducerBuilder authorizationToken(
+ String authorizationToken) {
+ setProperty("authorizationToken", authorizationToken);
+ return this;
+ }
}
/**
@@ -906,6 +932,19 @@ public interface TelegramEndpointBuilderFactory {
setProperty("proxyPort", proxyPort);
return this;
}
+ /**
+ * The authorization token for using the bot (ask the BotFather).
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Required: true
+ * Group: security
+ */
+ default TelegramEndpointBuilder authorizationToken(
+ String authorizationToken) {
+ setProperty("authorizationToken", authorizationToken);
+ return this;
+ }
}
/**
@@ -976,14 +1015,11 @@ public interface TelegramEndpointBuilderFactory {
* Available as of version: 2.18
* Maven coordinates: org.apache.camel:camel-telegram
*
- * Syntax: <code>telegram:type/authorizationToken</code>
+ * Syntax: <code>telegram:type</code>
*
* Path parameter: type (required)
* The endpoint type. Currently, only the 'bots' type is supported.
* The value can be one of: bots
- *
- * Path parameter: authorizationToken (required)
- * The authorization token for using the bot (ask the BotFather)
*/
default TelegramEndpointBuilder telegram(String path) {
class TelegramEndpointBuilderImpl extends AbstractEndpointBuilder implements TelegramEndpointBuilder, AdvancedTelegramEndpointBuilder {
diff --git a/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java b/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java
index a3c8f0c..b3dcc2b 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java
@@ -39,7 +39,7 @@ public final class URISupport {
// Match any key-value pair in the URI query string whose key contains
// "passphrase" or "password" or secret key (case-insensitive).
// First capture group is the key, second is the value.
- private static final Pattern SECRETS = Pattern.compile("([?&][^=]*(?:passphrase|password|secretKey|accessToken|clientSecret)[^=]*)=(RAW[({].*[)}]|[^&]*)", Pattern.CASE_INSENSITIVE);
+ private static final Pattern SECRETS = Pattern.compile("([?&][^=]*(?:passphrase|password|secretKey|accessToken|clientSecret|authorizationToken)[^=]*)=(RAW[({].*[)}]|[^&]*)", Pattern.CASE_INSENSITIVE);
// Match the user password in the URI as second capture group
// (applies to URI with authority component and userinfo token in the form
diff --git a/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java b/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java
index 69340e1..ca23e2b 100644
--- a/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java
+++ b/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java
@@ -138,7 +138,7 @@ public class URISupportTest {
}
@Test
- public void testParseParametersURLEncodeddValue() throws Exception {
+ public void testParseParametersURLEncodedValue() throws Exception {
String out = URISupport.normalizeUri("http://www.google.com?q=S%C3%B8ren+Hansen");
URI uri = new URI(out);
@@ -149,13 +149,13 @@ public class URISupportTest {
}
@Test
- public void testNormalizeUriWhereParamererIsFaulty() throws Exception {
+ public void testNormalizeUriWhereParameterIsFaulty() throws Exception {
String out = URISupport.normalizeUri("stream:uri?file:///d:/temp/data/log/quickfix.log&scanStream=true");
assertNotNull(out);
}
@Test
- public void testCreateRemaingURI() throws Exception {
+ public void testCreateRemainingURI() throws Exception {
URI original = new URI("http://camel.apache.org");
Map<String, Object> param = new HashMap<>();
param.put("foo", "123");
@@ -246,6 +246,12 @@ public class URISupportTest {
}
@Test
+ public void testSanitizeAuthorizationToken() throws Exception {
+ String out1 = URISupport.sanitizeUri("telegram:bots?authorizationToken=1234567890:AABBCOhEaqprrk6qqQtsSPFYS3Njgv2ljW2");
+ assertEquals("telegram:bots?authorizationToken=xxxxxx", out1);
+ }
+
+ @Test
public void testSanitizeUriWithUserInfo() {
String uri = "jt400://GEORGE:HARRISON@LIVERPOOL/QSYS.LIB/BEATLES.LIB/PENNYLANE.DTAQ";
String expected = "jt400://GEORGE:xxxxxx@LIVERPOOL/QSYS.LIB/BEATLES.LIB/PENNYLANE.DTAQ";
diff --git a/examples/camel-example-telegram/README.adoc b/examples/camel-example-telegram/README.adoc
index 9f7fd23..e4b4734 100644
--- a/examples/camel-example-telegram/README.adoc
+++ b/examples/camel-example-telegram/README.adoc
@@ -1,8 +1,8 @@
-# Telegram API Example
+= Telegram API Example
This example shows how to use Telegram API.
-= How to run
+== How to run
You can run this example using
diff --git a/examples/camel-example-telegram/pom.xml b/examples/camel-example-telegram/pom.xml
index 4b02b39..41abfc0 100644
--- a/examples/camel-example-telegram/pom.xml
+++ b/examples/camel-example-telegram/pom.xml
@@ -45,9 +45,13 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-management-impl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-telegram</artifactId>
- <version>${camel.version}</version>
</dependency>
+
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
diff --git a/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/Application.java b/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/Application.java
index cca64c4..ad82017 100644
--- a/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/Application.java
+++ b/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/Application.java
@@ -42,12 +42,13 @@ public final class Application {
}
private Application() {
-
+ // noop
}
public static void main(String[] args) throws Exception {
CamelContext context = new DefaultCamelContext();
context.start();
+
context.addRoutes(new TelegramRouteBuilder());
context.addStartupListener(new TelegramExamplesRunner());
}
diff --git a/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/TelegramRouteBuilder.java b/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/TelegramRouteBuilder.java
index 350f226..2916a7d 100644
--- a/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/TelegramRouteBuilder.java
+++ b/examples/camel-example-telegram/src/main/java/org/apache/camel/example/telegram/TelegramRouteBuilder.java
@@ -19,8 +19,10 @@ package org.apache.camel.example.telegram;
import org.apache.camel.builder.RouteBuilder;
public class TelegramRouteBuilder extends RouteBuilder {
+
@Override
public void configure() {
- from("direct:start").to("telegram:bots/" + Application.AUTHORIZATION_TOKEN + "?chatId=" + Application.CHAT_ID);
+ from("direct:start")
+ .toF("telegram:bots/?authorizationToken=%s&chatId=%s", Application.AUTHORIZATION_TOKEN, Application.CHAT_ID);
}
}