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

Reply via email to