You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "luca capra (JIRA)" <ji...@apache.org> on 2016/10/26 13:48:58 UTC

[jira] [Updated] (ARTEMIS-826) MQTT with a long password field causes NPE exception

     [ https://issues.apache.org/jira/browse/ARTEMIS-826?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

luca capra updated ARTEMIS-826:
-------------------------------
    Description: 
Hi
I'm using mqtt.js and Paho (java) as client for MQTT protocol. 
The issue can be replicated both on (my embed) version pointing at master (1.5.0-SNAPSHOT) and with a clean install of 1.4.0 release

Happens by using a long password (a jwt token in my case) which causes this exception on both versions

Example password:
eyJhbGciOiJIUzUxMiJ9.eyJjcmVhdGVkIjoxNDc3NDg1NDc5OTEzLCJleHAiOjE0Nzc0ODcyNzksInV1aWQiOiI2NmVkNDc3Mi0wNDg5LTRlOTYtYmI2NS01NDhiMmVkMmM3MWQifQ.LbOAr8pPApDlVBLi32JWtCjmCa80ByAJYq9BnTnWQgh4SWka4WzykMU0D_atE5tYtgICj2QOg-OFglv2ZqLLNw

Exception:
Caused by: java.lang.NullPointerException
	at org.apache.activemq.artemis.core.protocol.ProtocolHandler$ProtocolDecoder.decode(ProtocolHandler.java:185) [artemis-server-1.4.0.jar:1.4.0]


Looking at the source Artemis receive a different set of bytes ("M"QTT starts at array[5])

https://github.com/apache/activemq-artemis/blob/master/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTProtocolManager.java#L131

---

MQTT spec on password length (0 to 65535 bytes of binary data + 2bytes for length)

http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc385349246

Client code is here:
https://gist.github.com/muka/df7cac712a645b9f1895274adcbe3670

Embed artemis code is here:
https://github.com/muka/raptor/tree/master/raptor-broker

Thanks!

  was:
Hi
I'm using mqtt.js and Paho (java) as client for MQTT protocol. 
The issue can be replicated both on (my embed) version pointing at master (1.5.0-SNAPSHOT) and with a clean install of 1.4.0 release

Happens by using a long password (a jwt token in my case) which causes this exception on both versions

Example password:
eyJhbGciOiJIUzUxMiJ9.eyJjcmVhdGVkIjoxNDc3NDg1NDc5OTEzLCJleHAiOjE0Nzc0ODcyNzksInV1aWQiOiI2NmVkNDc3Mi0wNDg5LTRlOTYtYmI2NS01NDhiMmVkMmM3MWQifQ.LbOAr8pPApDlVBLi32JWtCjmCa80ByAJYq9BnTnWQgh4SWka4WzykMU0D_atE5tYtgICj2QOg-OFglv2ZqLLNw

Exception:
Caused by: java.lang.NullPointerException
	at org.apache.activemq.artemis.core.protocol.ProtocolHandler$ProtocolDecoder.decode(ProtocolHandler.java:185) [artemis-server-1.4.0.jar:1.4.0]


Looking at the source Artemis receive a different set of bytes ("M"QTT starts at array[5])

https://github.com/apache/activemq-artemis/blob/master/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTProtocolManager.java#L131

---
Client code is here:
https://gist.github.com/muka/df7cac712a645b9f1895274adcbe3670

Embed artemis code is here:
https://github.com/muka/raptor/tree/master/raptor-broker

Thanks!


> MQTT with a long password field causes NPE exception
> ----------------------------------------------------
>
>                 Key: ARTEMIS-826
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-826
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 1.4.0, 1.5.0
>            Reporter: luca capra
>              Labels: mqtt
>
> Hi
> I'm using mqtt.js and Paho (java) as client for MQTT protocol. 
> The issue can be replicated both on (my embed) version pointing at master (1.5.0-SNAPSHOT) and with a clean install of 1.4.0 release
> Happens by using a long password (a jwt token in my case) which causes this exception on both versions
> Example password:
> eyJhbGciOiJIUzUxMiJ9.eyJjcmVhdGVkIjoxNDc3NDg1NDc5OTEzLCJleHAiOjE0Nzc0ODcyNzksInV1aWQiOiI2NmVkNDc3Mi0wNDg5LTRlOTYtYmI2NS01NDhiMmVkMmM3MWQifQ.LbOAr8pPApDlVBLi32JWtCjmCa80ByAJYq9BnTnWQgh4SWka4WzykMU0D_atE5tYtgICj2QOg-OFglv2ZqLLNw
> Exception:
> Caused by: java.lang.NullPointerException
> 	at org.apache.activemq.artemis.core.protocol.ProtocolHandler$ProtocolDecoder.decode(ProtocolHandler.java:185) [artemis-server-1.4.0.jar:1.4.0]
> Looking at the source Artemis receive a different set of bytes ("M"QTT starts at array[5])
> https://github.com/apache/activemq-artemis/blob/master/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTProtocolManager.java#L131
> ---
> MQTT spec on password length (0 to 65535 bytes of binary data + 2bytes for length)
> http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc385349246
> Client code is here:
> https://gist.github.com/muka/df7cac712a645b9f1895274adcbe3670
> Embed artemis code is here:
> https://github.com/muka/raptor/tree/master/raptor-broker
> Thanks!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)