This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-3.21.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.21.x by this push: new 520a259fd75 Camel-19627: paho-mqtt5 allow optional password when username provided (#11043) 520a259fd75 is described below commit 520a259fd7583b4bd66ffc8a8f3b52c8bf423038 Author: Jono Morris <jono.mor...@xtra.co.nz> AuthorDate: Wed Aug 9 02:21:49 2023 +1200 Camel-19627: paho-mqtt5 allow optional password when username provided (#11043) * CAMEL-19627 allow optional password when username provided * CAMEL-19627 remove experimental code * CAMEL-19627 concatenate url strings --- .../component/paho/mqtt5/PahoMqtt5Endpoint.java | 6 ++++-- .../paho/mqtt5/PahoMqtt5ComponentMqtt5Test.java | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5Endpoint.java b/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5Endpoint.java index 33361d06012..13852be4ec3 100644 --- a/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5Endpoint.java +++ b/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5Endpoint.java @@ -85,9 +85,11 @@ public class PahoMqtt5Endpoint extends DefaultEndpoint { protected MqttConnectionOptions createMqttConnectionOptions() { PahoMqtt5Configuration config = getConfiguration(); MqttConnectionOptions options = new MqttConnectionOptions(); - if (ObjectHelper.isNotEmpty(config.getUserName()) && ObjectHelper.isNotEmpty(config.getPassword())) { + if (ObjectHelper.isNotEmpty(config.getUserName())) { options.setUserName(config.getUserName()); - options.setPassword(config.getPassword().getBytes()); + if (ObjectHelper.isNotEmpty(config.getPassword())) { + options.setPassword(config.getPassword().getBytes()); + } } options.setAutomaticReconnect(config.isAutomaticReconnect()); options.setCleanStart(config.isCleanStart()); diff --git a/components/camel-paho-mqtt5/src/test/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5ComponentMqtt5Test.java b/components/camel-paho-mqtt5/src/test/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5ComponentMqtt5Test.java index 4491c97e7b2..c2f62bd2b31 100644 --- a/components/camel-paho-mqtt5/src/test/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5ComponentMqtt5Test.java +++ b/components/camel-paho-mqtt5/src/test/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5ComponentMqtt5Test.java @@ -75,6 +75,26 @@ public class PahoMqtt5ComponentMqtt5Test extends PahoMqtt5TestSupport { assertEquals(PahoMqtt5Persistence.FILE, endpoint.getConfiguration().getPersistence()); } + @Test + public void checkUserNameOnly() { + String uri = "paho-mqtt5:/test/topic?brokerUrl=tcp://localhost:" + mqttPort + "&userName=test"; + + PahoMqtt5Endpoint endpoint = getMandatoryEndpoint(uri, PahoMqtt5Endpoint.class); + + assertEquals("test", endpoint.getConfiguration().getUserName()); + } + + @Test + public void checkUserNameAndPassword() { + String uri = "paho-mqtt5:/test/topic?brokerUrl=tcp://localhost:" + mqttPort + + "&userName=test&password=testpass"; + + PahoMqtt5Endpoint endpoint = getMandatoryEndpoint(uri, PahoMqtt5Endpoint.class); + + assertEquals("test", endpoint.getConfiguration().getUserName()); + assertEquals("testpass", endpoint.getConfiguration().getPassword()); + } + @Test public void shouldReadMessageFromMqtt() throws InterruptedException { // Given