Hi Pamod, Do we allow multiple topic subscriptions with the same ClientID? As per my observation we do not allow this.
So if we do not allow this, there is no point in keeping a stale connection. With Regards, On Sat, Oct 3, 2015 at 3:55 PM, Pumudu Ruhunage <pum...@wso2.com> wrote: > Hi All, > > @pamod, I also agree disconnecting is not the ideal solution. just thought > from client side, since it's not getting any indication of not subscribing > to the topic. > > Then implementation will be as follows. > > MQTT 3.1 - No error code send to client. > MQTT 3.1.1 - Send error code 0x80 to client. > > Thanks, > Pumudu > > On Sat, Oct 3, 2015 at 3:44 PM, Ramith Jayasinghe <ram...@wso2.com> wrote: > >> I think whats more relevant is to make v 3.1.1 case correct. >> >> >> On Sat, Oct 3, 2015 at 2:03 PM, Pamod Sylvester <pa...@wso2.com> wrote: >> >>> Both versions of the protocol are supported at the moment AFAIK. >>> >>> So for 3.1.1 sending the error code is adequate. As mentioned in the >>> previous mail there can be several topic subscriptions in one connection. >>> So disconnection might not be the ideal solution IMO. WDYT ? >>> >>> >>> On Saturday, October 3, 2015, Pumudu Ruhunage <pum...@wso2.com> wrote: >>> >>>> Hi All, >>>> >>>> Since we have to support both protocols we need implement both >>>> behaviors based on protocols? right ? >>>> IMO for 3.1 we need to indicate that it's not subscribed to the topic >>>> by disconnection if it's not subscribed. otherwise it gives false >>>> impression that client successfully subscribed to given topic. >>>> >>>> So can we agree on following implementation? >>>> MQTT 3.1 - No error code send to client. Disconnect client >>>> from broker. >>>> MQTT 3.1.1 - Send error code 0x80 to client. (Is error code enough ? >>>> should we disconnect client from broker ?) >>>> >>>> WDYT ? >>>> >>>> Thanks, >>>> Pumudu >>>> >>>> >>>> >>>> On Sat, Oct 3, 2015 at 10:18 AM, Pamod Sylvester <pa...@wso2.com> >>>> wrote: >>>> >>>>> The CONNECT and SUBSCRIBE are two different command messages. The >>>>> subscription phase comes after the connection. >>>>> >>>>> Also the other fact is a single connection could involve multiple >>>>> topic subscriptions. So lets say if a given tenant sends a list of topic >>>>> subscriptions there could be subscriptions which the tenant could be >>>>> authorised among that list. So closing/refusing the entire connection >>>>> might >>>>> not be appropriate in this case. >>>>> >>>>> - 0x05 (Connection Refused: not authorized) is sent as an >>>>> acknowledgement for CONNECT message (CONNACK). i.e a given client has >>>>> provided unauthorised credentials etc. >>>>> >>>>> During this phase the subscription will not occur, we only could >>>>> validate whether a given tenants credentials are correct or not. >>>>> >>>>> - When the subscription happens based on my understanding of the spec >>>>> it has passed the CONNACK stage. The only way we could indicate an error >>>>> related to subscription is through SUBACK. >>>>> >>>>> # The MQTT 3.1 specification has a limitation where error codes >>>>> cannot be sent with SUBACK. Hence for 3.1 spec having subscription failed >>>>> in silent mode is expected behaviour. >>>>> >>>>> You could find a similar discussion on [1]. Based on [1] what they've >>>>> done is hacked the client and the server to accept error codes for 3.1 >>>>> specification. This will not be clean and will not interop with other >>>>> clients (even if we could hack the server to send error codes, the clients >>>>> which has implemented according to 3.1 specification will not accept the >>>>> error message). >>>>> >>>>> Another option is to initiate a disconnection from the broker to avoid >>>>> stale connections. But then again as mentioned in the beginning if >>>>> there're >>>>> list of subscriptions for a connection, even the authorised subscriptions >>>>> would not be able to consume. >>>>> >>>>> # The MQTT 3.1.1 specification there's an error code introduced 0x80 >>>>> for forbidden subscriptions. So that should be the way we should ideally >>>>> use for indication of an error IMHO. But it'll be available in 3.1.1. >>>>> >>>>> >>>>> [1] https://issues.jboss.org/browse/ENTMQ-990 >>>>> >>>>> >>>>> >>>>> >>>>> On Sat, Oct 3, 2015 at 7:06 AM, Hasitha Hiranya <hasit...@wso2.com> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> Yes, Connection Refused, not authorized is the best we can do. >>>>>> >>>>>> @Pamod, any batter alternative? >>>>>> >>>>>> Thanks! >>>>>> >>>>>> On Fri, Oct 2, 2015 at 10:55 PM, Yasassri Ratnayake < >>>>>> yasas...@wso2.com> wrote: >>>>>> >>>>>>> Hi Pumudu, >>>>>>> >>>>>>> MQTT spec doesn't talk about a permission model, So IMO the closest >>>>>>> error we can propagate to the client is "0x05 Connection Refused, not >>>>>>> authorized". >>>>>>> >>>>>>> >>>>>>> With Regards, >>>>>>> >>>>>>> On Fri, Oct 2, 2015 at 6:17 PM, Pumudu Ruhunage <pum...@wso2.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi All, >>>>>>>> >>>>>>>> If a tenant don't have permission to subscribe to a given topic >>>>>>>> (tenant 'a.com' try to subscribe to tenant 'b.com') currently it >>>>>>>> will keep connected even though it's not subscribed, because user >>>>>>>> authentication was successful. This is misleading to subscriber as no >>>>>>>> return code sent and it's actively connected to broker. >>>>>>>> AFAIK mqtt don't define how to handle tenancy scenarios in it's >>>>>>>> spec. Couldn't find a definition in MQTT spec 3.1.0/3.1.1 on how to >>>>>>>> reject >>>>>>>> if permission denied to subscribe to a given topic(due to tenancy). >>>>>>>> >>>>>>>> One option to handle this scenario is to send return code 5 (Connection >>>>>>>> Refused, not authorized) to client if it doesn't have permission >>>>>>>> to subscribe to given topic. This way client will disconnect if it >>>>>>>> don't >>>>>>>> have permission to subscribe. Is this acceptable or are there any >>>>>>>> alternatives to handle this scenario? >>>>>>>> >>>>>>>> jira https://wso2.org/jira/browse/MB-1409 >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Pumudu >>>>>>>> -- >>>>>>>> Pumudu Ruhunage >>>>>>>> Associate Software Engineer | WSO2 Inc >>>>>>>> M: +94 779 664493 | http://wso2.com >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Dev mailing list >>>>>>>> Dev@wso2.org >>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Yasassri Ratnayake >>>>>>> Software Engineer - QA >>>>>>> WSO2 Inc ; http://wso2.com >>>>>>> lean.enterprise.middleware >>>>>>> *Mobile : +94715933168 <%2B94715933168>* >>>>>>> *Blogs : http://yasassriratnayake.blogspot.com >>>>>>> <http://yasassriratnayake.blogspot.com/>* >>>>>>> * http://wso2logs.blogspot.com >>>>>>> <http://wso2logs.blogspot.com>* >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Dev mailing list >>>>>>> Dev@wso2.org >>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Hasitha Abeykoon* >>>>>> Senior Software Engineer; WSO2, Inc.; http://wso2.com >>>>>> *cell:* *+94 719363063* >>>>>> *blog: **abeykoon.blogspot.com* <http://abeykoon.blogspot.com> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Pamod Sylvester * >>>>> >>>>> *WSO2 Inc.; http://wso2.com <http://wso2.com>* >>>>> cell: +94 77 7779495 >>>>> >>>> >>>> >>>> >>>> -- >>>> Pumudu Ruhunage >>>> Associate Software Engineer | WSO2 Inc >>>> M: +94 779 664493 | http://wso2.com >>>> >>> >>> >>> -- >>> *Pamod Sylvester * >>> >>> *WSO2 Inc.; http://wso2.com <http://wso2.com>* >>> cell: +94 77 7779495 >>> >>> >>> _______________________________________________ >>> Dev mailing list >>> Dev@wso2.org >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> Ramith Jayasinghe >> Technical Lead >> WSO2 Inc., http://wso2.com >> lean.enterprise.middleware >> >> E: ram...@wso2.com >> P: +94 777542851 >> >> > > > -- > Pumudu Ruhunage > Associate Software Engineer | WSO2 Inc > M: +94 779 664493 | http://wso2.com > > _______________________________________________ > Dev mailing list > Dev@wso2.org > http://wso2.org/cgi-bin/mailman/listinfo/dev > > -- Yasassri Ratnayake Software Engineer - QA WSO2 Inc ; http://wso2.com lean.enterprise.middleware *Mobile : +94715933168* *Blogs : http://yasassriratnayake.blogspot.com <http://yasassriratnayake.blogspot.com/>* * http://wso2logs.blogspot.com <http://wso2logs.blogspot.com>*
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev