From 12923a9873cd2da5e7ef112a8cda140016cc0878 Mon Sep 17 00:00:00 2001 From: Fabrizio Spataro Date: Mon, 7 Aug 2017 10:07:27 +0200 Subject: [PATCH 1/2] Broken Credentials should be set from endpoint --- .../src/main/docs/paho-component.adoc | 2 ++ .../camel/component/paho/PahoComponent.java | 2 +- .../camel/component/paho/PahoEndpoint.java | 34 +++++++++++++++++++ .../component/paho/PahoComponentTest.java | 12 +++++++ 4 files changed, 49 insertions(+), 1 deletion(-) diff --git a/components/camel-paho/src/main/docs/paho-component.adoc b/components/camel-paho/src/main/docs/paho-component.adoc index 2c20f19510363..9bde94e5580bd 100644 --- a/components/camel-paho/src/main/docs/paho-component.adoc +++ b/components/camel-paho/src/main/docs/paho-component.adoc @@ -127,6 +127,8 @@ The Paho component supports 4 options which are listed below. | **brokerUrl** (common) | The URL of the MQTT broker. | | String | **clientId** (common) | MQTT client identifier. | | String | **connectOptions** (advanced) | Client connection options | | MqttConnectOptions +| **userName** (common) | UserName used for authentication again the MQTT broker. | | String +| **password** (common) | Password used for authentication again the MQTT broker. | | String | **resolveProperty Placeholders** (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean |======================================================================= // component options: END diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoComponent.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoComponent.java index 1a8e4a5f75cf8..47cb4feafad34 100644 --- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoComponent.java +++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoComponent.java @@ -32,7 +32,7 @@ public class PahoComponent extends UriEndpointComponent { private String clientId; @Metadata(label = "advanced") private MqttConnectOptions connectOptions; - + public PahoComponent() { super(PahoEndpoint.class); } diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java index 16af7d1d0fa5c..3416ea8b9e4c1 100644 --- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java +++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java @@ -63,6 +63,11 @@ public class PahoEndpoint extends DefaultEndpoint { private String filePersistenceDirectory; @UriParam(defaultValue = "true") private boolean autoReconnect = true; + @UriParam @Metadata(secret = true) + private String userName; + @UriParam @Metadata(secret = true) + private String password; + // Collaboration members @UriParam @@ -140,6 +145,11 @@ protected MqttConnectOptions resolveMqttConnectOptions() { MqttConnectOptions options = new MqttConnectOptions(); options.setAutomaticReconnect(autoReconnect); + + if(!"".equals(userName) && !"".equals(password)) { + options.setUserName(userName); + options.setPassword(password.toCharArray()); + } return options; } @@ -271,4 +281,28 @@ public synchronized void setAutoReconnect(boolean autoReconnect) { this.autoReconnect = autoReconnect; } + public String getUserName() { + return userName; + } + + /** + * Username to be used for authentication against the MQTT broker + * @param userName + */ + public void setUserName(String userName) { + this.userName = userName; + } + + public String getPassword() { + return password; + } + + /** + * Password to be used for authentication against the MQTT broker + * @param password + */ + public void setPassword(String password) { + this.password = password; + } + } diff --git a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoComponentTest.java b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoComponentTest.java index 27f0ed892ac05..f7de2c716942a 100644 --- a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoComponentTest.java +++ b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoComponentTest.java @@ -211,4 +211,16 @@ public void shouldReadMessageFromCustomizedComponent() throws InterruptedExcepti testCustomizedPahoMock.assertIsSatisfied(); } + @Test + public void shouldNotSendMessageAuthIsNotValid() throws InterruptedException { + // Given + mock.expectedMessageCount(0); + + // When + template.sendBody("paho:someRandomQueue?brokerUrl=tcp://localhost:" + mqttPort+"&userName=test&password=test", "msg"); + + // Then + mock.assertIsSatisfied(); + } + } From c138119e832ebbba88858b5eb08f133ae0ed66db Mon Sep 17 00:00:00 2001 From: Fabrizio Spataro Date: Mon, 7 Aug 2017 10:11:22 +0200 Subject: [PATCH 2/2] CAMEL-11642 --- components/camel-paho/src/main/docs/paho-component.adoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/components/camel-paho/src/main/docs/paho-component.adoc b/components/camel-paho/src/main/docs/paho-component.adoc index 9bde94e5580bd..84083ee6713ce 100644 --- a/components/camel-paho/src/main/docs/paho-component.adoc +++ b/components/camel-paho/src/main/docs/paho-component.adoc @@ -134,8 +134,6 @@ The Paho component supports 4 options which are listed below. // component options: END - - // endpoint options: START The Paho endpoint is configured using URI syntax: