Uploaded image for project: 'ActiveMQ'
  1. ActiveMQ
  2. AMQ-5160

Wildcard subscriptions bypass Authentication / Authorization

    Details

      Description

      I am using MQTT on AMQ 5.9.1
      After latest MQTT hardening from Dhiraj Bokde , there is an issue of MQTT retained messages.

      Simple case:
      Set Authentication / Authorization for two different TOPICS.
      Send retained message to one topic.

      Try to subscribe "#" with other second user.
      It will show retained messages published by TOPIC 1.

      here i have attached test configurations.

      1. activemq.xml
        3 kB
        Surf
      2. groups.properties
        1.0 kB
        Surf
      3. login.config
        1 kB
        Surf
      4. users.properties
        1.0 kB
        Surf
      5. patch.txt
        11 kB
        Dejan Bosanac

        Issue Links

          Activity

          Hide
          dhirajsb Dhiraj Bokde added a comment - - edited

          Can you also check what happens with non-retained messages? Currently retained messages are not checked for authorization per matched destination with wildcard topics. I wonder whether the same holds true for non-retained messages??

          Show
          dhirajsb Dhiraj Bokde added a comment - - edited Can you also check what happens with non-retained messages? Currently retained messages are not checked for authorization per matched destination with wildcard topics. I wonder whether the same holds true for non-retained messages??
          Hide
          surfnerd Surf added a comment -

          hi Dhiraj Bokde,

          Yes . I checked.
          It is also true for non-retained messages.
          So in-short MQTT doesn't follow authorization for any wild-card subscription.

          Show
          surfnerd Surf added a comment - hi Dhiraj Bokde , Yes . I checked. It is also true for non-retained messages. So in-short MQTT doesn't follow authorization for any wild-card subscription.
          Hide
          dhirajsb Dhiraj Bokde added a comment -

          If I had to hazard a guess, I'd say that if its happening with non-retained messages, then it would be true of any ActiveMQ protocol. In other words, this will have to fixed in the Broker where subscription matching happens for non-retained messages, and will need a fix in the MQTT transport for retained messages.

          Show
          dhirajsb Dhiraj Bokde added a comment - If I had to hazard a guess, I'd say that if its happening with non-retained messages, then it would be true of any ActiveMQ protocol. In other words, this will have to fixed in the Broker where subscription matching happens for non-retained messages, and will need a fix in the MQTT transport for retained messages.
          Hide
          surfnerd Surf added a comment -

          Okay. I understand. So we need to fix authorization for wildcard subscription.
          Can you please guide me how to proceed for it ? I can help making patch.

          Show
          surfnerd Surf added a comment - Okay. I understand. So we need to fix authorization for wildcard subscription. Can you please guide me how to proceed for it ? I can help making patch.
          Hide
          surfnerd Surf added a comment -

          Can someone help me in this ?
          It's big security flaw.

          Show
          surfnerd Surf added a comment - Can someone help me in this ? It's big security flaw.
          Hide
          dhirajsb Dhiraj Bokde added a comment -

          Hi Surf, I'm looking into this issue, will enlist the help of ActiveMQ committers if needed.

          Show
          dhirajsb Dhiraj Bokde added a comment - Hi Surf, I'm looking into this issue, will enlist the help of ActiveMQ committers if needed.
          Hide
          githubbot ASF GitHub Bot added a comment -

          GitHub user dhirajsb opened a pull request:

          https://github.com/apache/activemq/pull/21

          Fix for AMQ-5160, add support for wildcard destination authorization

          You can merge this pull request into a Git repository by running:

          $ git pull https://github.com/dhirajsb/activemq trunk

          Alternatively you can review and apply these changes as the patch at:

          https://github.com/apache/activemq/pull/21.patch

          To close this pull request, make a commit to your master/trunk branch
          with (at least) the following in the commit message:

          This closes #21


          commit 071c2d30ba5b497a66937c724605d18d04a7e516
          Author: Dhiraj Bokde <dbokde@redhat.com>
          Date: 2014-05-01T18:21:50Z

          Initial fix for AMQ-5160 to support subscription authorization for destination filters

          commit 2b6758c822a90ea6f78501c86b397e0d6550fb56
          Author: Hadrian Zbarcea <hadrian@apache.org>
          Date: 2014-05-01T19:25:31Z

          Temporarily disable failing test

          commit 343c90415aca46f450ed493219facf6812a6dad9
          Author: Dhiraj Bokde <dbokde@redhat.com>
          Date: 2014-05-02T02:13:01Z

          Fixed AMQ-5160, allowed wildcard subscriptions for future destinations, added tests for wildcard authorization, fixed consumer and producer AdvisoryTopic names for composite destinations by replacing ',' with '‚'


          Show
          githubbot ASF GitHub Bot added a comment - GitHub user dhirajsb opened a pull request: https://github.com/apache/activemq/pull/21 Fix for AMQ-5160 , add support for wildcard destination authorization You can merge this pull request into a Git repository by running: $ git pull https://github.com/dhirajsb/activemq trunk Alternatively you can review and apply these changes as the patch at: https://github.com/apache/activemq/pull/21.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #21 commit 071c2d30ba5b497a66937c724605d18d04a7e516 Author: Dhiraj Bokde <dbokde@redhat.com> Date: 2014-05-01T18:21:50Z Initial fix for AMQ-5160 to support subscription authorization for destination filters commit 2b6758c822a90ea6f78501c86b397e0d6550fb56 Author: Hadrian Zbarcea <hadrian@apache.org> Date: 2014-05-01T19:25:31Z Temporarily disable failing test commit 343c90415aca46f450ed493219facf6812a6dad9 Author: Dhiraj Bokde <dbokde@redhat.com> Date: 2014-05-02T02:13:01Z Fixed AMQ-5160 , allowed wildcard subscriptions for future destinations, added tests for wildcard authorization, fixed consumer and producer AdvisoryTopic names for composite destinations by replacing ',' with '‚'
          Hide
          surfnerd Surf added a comment -

          Thanks Dhiraj Bokde for the patch. I just tried it.

          I see some weird behaviour:
          1. When admin publishes , all the clients receive the message. Disregarding Authorization. ( If they have subscribed to wildcard)
          2. Sometimes it shows not allowed to subscribe "+" wildcard. Sometimes it works.

          Show
          surfnerd Surf added a comment - Thanks Dhiraj Bokde for the patch. I just tried it. I see some weird behaviour: 1. When admin publishes , all the clients receive the message. Disregarding Authorization. ( If they have subscribed to wildcard) 2. Sometimes it shows not allowed to subscribe "+" wildcard. Sometimes it works.
          Hide
          dhirajsb Dhiraj Bokde added a comment -

          Hi Surf,

          Sorry if you have already done it, but did you test with a fresh activemq data directory? Older un-authorized subscriptions in broker store could cause weird behavior like you describe. Also, can you share your test code as a JUnit test case?

          Retained message behavior is still not sorted out, the patch should only affect non-retained messages.

          Regards,
          Dhiraj.

          Show
          dhirajsb Dhiraj Bokde added a comment - Hi Surf, Sorry if you have already done it, but did you test with a fresh activemq data directory? Older un-authorized subscriptions in broker store could cause weird behavior like you describe. Also, can you share your test code as a JUnit test case? Retained message behavior is still not sorted out, the patch should only affect non-retained messages. Regards, Dhiraj.
          Hide
          surfnerd Surf added a comment -

          Hi Dhiraj Bokde ,

          Sorry I don't have JUnit test case. I normally try with Mosquito python client.
          Yes. I cleaned data directory and weird behaviour is gone !

          As you indicated, retained messages still don't follow authorization. Do you need any help in that direction ?

          Show
          surfnerd Surf added a comment - Hi Dhiraj Bokde , Sorry I don't have JUnit test case. I normally try with Mosquito python client. Yes. I cleaned data directory and weird behaviour is gone ! As you indicated, retained messages still don't follow authorization. Do you need any help in that direction ?
          Hide
          dejanb Dejan Bosanac added a comment -

          Patch applied. Thanks Dhiraj. I'll leave the issue open until retained messages are sorted.

          Show
          dejanb Dejan Bosanac added a comment - Patch applied. Thanks Dhiraj. I'll leave the issue open until retained messages are sorted.
          Hide
          dejanb Dejan Bosanac added a comment -
          Show
          dejanb Dejan Bosanac added a comment - Added a test for the remaining retained messages issue https://fisheye6.atlassian.com/changelog/activemq-git?cs=64baf092f073f8c2256a2f2ed704f708562d65a5
          Hide
          dejanb Dejan Bosanac added a comment - - edited

          I was looking a bit more into this. The problem is that we're managing these retained messages in the mqtt filter and sending it directly to the subscription. So it buy-passes all broker interceptors (including security ones). I think the better option would be to reuse subscription recovery policy mechanism

          http://activemq.apache.org/subscription-recovery-policy.html

          and adapt it for mqtt use-cases. I'll take a stub at refactoring this.

          Show
          dejanb Dejan Bosanac added a comment - - edited I was looking a bit more into this. The problem is that we're managing these retained messages in the mqtt filter and sending it directly to the subscription. So it buy-passes all broker interceptors (including security ones). I think the better option would be to reuse subscription recovery policy mechanism http://activemq.apache.org/subscription-recovery-policy.html and adapt it for mqtt use-cases. I'll take a stub at refactoring this.
          Hide
          dhirajsb Dhiraj Bokde added a comment -

          Dejan Bosanac How are you planning on adding the MQTT retained message recovery policy? In theory it should be added on the fly from the MQTT protocol converter when an MQTT client sends a message to a Topic. Also, if another recovery policy exists on the Topic, then the MQTT policy should act in parallel with it. What do you think?
          In general I like the idea of the recovery policy, since it would allow non-MQTT connections to receive retained messages too.

          Meanwhile, I opened a pull request https://github.com/apache/activemq/pull/21 to add authorization for retained messages with the current approach.

          Show
          dhirajsb Dhiraj Bokde added a comment - Dejan Bosanac How are you planning on adding the MQTT retained message recovery policy? In theory it should be added on the fly from the MQTT protocol converter when an MQTT client sends a message to a Topic. Also, if another recovery policy exists on the Topic, then the MQTT policy should act in parallel with it. What do you think? In general I like the idea of the recovery policy, since it would allow non-MQTT connections to receive retained messages too. Meanwhile, I opened a pull request https://github.com/apache/activemq/pull/21 to add authorization for retained messages with the current approach.
          Hide
          surfnerd Surf added a comment -

          Hey Dhiraj Bokde
          I got this error in your last retained message fix.

          MQTTTransportFactory.java:[57,20] error: unreported exception Exception; must be caught or declared to be thrown

          Can you please verify ?

          Show
          surfnerd Surf added a comment - Hey Dhiraj Bokde I got this error in your last retained message fix. MQTTTransportFactory.java: [57,20] error: unreported exception Exception; must be caught or declared to be thrown Can you please verify ?
          Hide
          dhirajsb Dhiraj Bokde added a comment - - edited

          Surf, I pushed a new commit in the PR to resolve that issue. Not sure why it didn't get caught the first time by IntelliJ Idea when I was testing it before sending the PR.

          Show
          dhirajsb Dhiraj Bokde added a comment - - edited Surf , I pushed a new commit in the PR to resolve that issue. Not sure why it didn't get caught the first time by IntelliJ Idea when I was testing it before sending the PR.
          Hide
          dejanb Dejan Bosanac added a comment -

          Hi Dhiraj, here's the patch that implements retained messages using subscription recovery. Here, Topic is using LastImageSubscriptionRecoveryPolicy by default, with the filter to cache only message with specified header (which we set in mqtt filter).
          The thing that still needs to be investigated is handling of duplicate subscriptions (as we can't do nothing anymore, but unsubscribe/subscribe to get retained messages). There's a test failing due to this and I need to see how we can fix that. Anyhow, I think this approach is more natural as the message will go through the whole stack of broker interceptors (and also allow retained message feature in jms land). But it still needs some work.

          Show
          dejanb Dejan Bosanac added a comment - Hi Dhiraj, here's the patch that implements retained messages using subscription recovery. Here, Topic is using LastImageSubscriptionRecoveryPolicy by default, with the filter to cache only message with specified header (which we set in mqtt filter). The thing that still needs to be investigated is handling of duplicate subscriptions (as we can't do nothing anymore, but unsubscribe/subscribe to get retained messages). There's a test failing due to this and I need to see how we can fix that. Anyhow, I think this approach is more natural as the message will go through the whole stack of broker interceptors (and also allow retained message feature in jms land). But it still needs some work.
          Hide
          surfnerd Surf added a comment -

          Dhiraj Bokde
          I just tried your patch again. Now it is showing different error.

          [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.
          5.1:compile (default-compile) on project activemq-mqtt: Compilation failure: Com
          pilation failure:
          [ERROR] bootstrap class path not set in conjunction with -source 1.6
          [ERROR] MQTTProtocolConverter.java:[399,55] error: cannot find symbol
          [ERROR] symbol: class TransportConnectionListener
          [ERROR] location: class TransportConnection
          [ERROR] MQTTProtocolConverter.java:[400,50] error: cannot find symbol
          [ERROR] -> [Help 1]

          Show
          surfnerd Surf added a comment - Dhiraj Bokde I just tried your patch again. Now it is showing different error. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2. 5.1:compile (default-compile) on project activemq-mqtt: Compilation failure: Com pilation failure: [ERROR] bootstrap class path not set in conjunction with -source 1.6 [ERROR] MQTTProtocolConverter.java: [399,55] error: cannot find symbol [ERROR] symbol: class TransportConnectionListener [ERROR] location: class TransportConnection [ERROR] MQTTProtocolConverter.java: [400,50] error: cannot find symbol [ERROR] -> [Help 1]
          Hide
          githubbot ASF GitHub Bot added a comment -

          GitHub user dhirajsb opened a pull request:

          https://github.com/apache/activemq/pull/22

          Partial fix for AMQ-5160, attempts to resolve retained messages using su...

          ...bscription recovery policy, but fails to resend retained messages for duplicate subscriptions

          You can merge this pull request into a Git repository by running:

          $ git pull https://github.com/dhirajsb/activemq AMQ5160.policy

          Alternatively you can review and apply these changes as the patch at:

          https://github.com/apache/activemq/pull/22.patch

          To close this pull request, make a commit to your master/trunk branch
          with (at least) the following in the commit message:

          This closes #22


          commit 3d8b79c6e34020ba12ea4b222af99753790955cf
          Author: Dhiraj Bokde <dhirajsb@yahoo.com>
          Date: 2014-05-08T02:05:36Z

          Partial fix for AMQ-5160, attempts to resolve retained messages using subscription recovery policy, but fails to resend retained messages for duplicate subscriptions


          Show
          githubbot ASF GitHub Bot added a comment - GitHub user dhirajsb opened a pull request: https://github.com/apache/activemq/pull/22 Partial fix for AMQ-5160 , attempts to resolve retained messages using su... ...bscription recovery policy, but fails to resend retained messages for duplicate subscriptions You can merge this pull request into a Git repository by running: $ git pull https://github.com/dhirajsb/activemq AMQ5160.policy Alternatively you can review and apply these changes as the patch at: https://github.com/apache/activemq/pull/22.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #22 commit 3d8b79c6e34020ba12ea4b222af99753790955cf Author: Dhiraj Bokde <dhirajsb@yahoo.com> Date: 2014-05-08T02:05:36Z Partial fix for AMQ-5160 , attempts to resolve retained messages using subscription recovery policy, but fails to resend retained messages for duplicate subscriptions
          Hide
          dhirajsb Dhiraj Bokde added a comment -

          Hi Dejan Bosanac, I took a look at the patch and fixed a couple of issues with it and have submitted a new PR https://github.com/apache/activemq/pull/22. I created a new policy, which ensures that retained message policy won't get accidentally removed if user sets another policy. It also makes sure that existing subscriptions don't receive messages with the retained flag set, only new subscriptions do. However, its still not complete.

          It still has the problem of not being able to resend Retained messages for duplicate subscriptions. I don't see any way of being able to do that short of the approach you took in your patch to remove the existing subscription and create it again. But this goes against MQTT-3.8.4-3, which says the subscription must NOT be interrupted, i.e. pending messages should not be lost. So, recreating the sub breaks the test that looks for pending messages, and not recreating the sub breaks another test that looks for resent retained messages.

          From what I figure so far, a possible solution would be the hybrid of my earlier PR https://github.com/apache/activemq/pull/21 (which walks 'up' the filter chain and finds the required SecurityContext to perform authorization in the MQTTProtocolConverter), and a RetainedMessageSubscriptionRecoveryPolicy to let non-MQTT clients also receive Retained messages (which is filtered out in the MQTTProtocolConverter so MQTT clients don't receive duplicates).

          Unless you can think of some trick to resend retained messages for a duplicate sub without removing it, I don't see any other way of being able to make it work for both MQTT and non-MQTT clients.

          Show
          dhirajsb Dhiraj Bokde added a comment - Hi Dejan Bosanac , I took a look at the patch and fixed a couple of issues with it and have submitted a new PR https://github.com/apache/activemq/pull/22 . I created a new policy, which ensures that retained message policy won't get accidentally removed if user sets another policy. It also makes sure that existing subscriptions don't receive messages with the retained flag set, only new subscriptions do. However, its still not complete. It still has the problem of not being able to resend Retained messages for duplicate subscriptions. I don't see any way of being able to do that short of the approach you took in your patch to remove the existing subscription and create it again. But this goes against MQTT-3.8.4-3, which says the subscription must NOT be interrupted, i.e. pending messages should not be lost. So, recreating the sub breaks the test that looks for pending messages, and not recreating the sub breaks another test that looks for resent retained messages. From what I figure so far, a possible solution would be the hybrid of my earlier PR https://github.com/apache/activemq/pull/21 (which walks 'up' the filter chain and finds the required SecurityContext to perform authorization in the MQTTProtocolConverter), and a RetainedMessageSubscriptionRecoveryPolicy to let non-MQTT clients also receive Retained messages (which is filtered out in the MQTTProtocolConverter so MQTT clients don't receive duplicates). Unless you can think of some trick to resend retained messages for a duplicate sub without removing it, I don't see any other way of being able to make it work for both MQTT and non-MQTT clients.
          Hide
          dhirajsb Dhiraj Bokde added a comment - - edited

          Surf, you need to rebuild the module activemq-broker too. BTW, don't combine PR 21 and 22, since they are alternative solutions to this problem. PR 21 works for MQTT clients only, and 22 breaks some MQTT tests.

          Show
          dhirajsb Dhiraj Bokde added a comment - - edited Surf , you need to rebuild the module activemq-broker too. BTW, don't combine PR 21 and 22, since they are alternative solutions to this problem. PR 21 works for MQTT clients only, and 22 breaks some MQTT tests.
          Hide
          surfnerd Surf added a comment -

          Dhiraj Bokde Thanks..I rebuilt whole project and it worked !

          On the other side, MQTT WS is not receiving messages at all ! (publish works fine)

          jvm 1 | WARN | Transport Connection to: MQTTSocket_1440179655 failed: java.io.IOException: org.apache.activemq.transport.ws.MQTTSocket cannot be cast to org.apache.activemq.transport.TransportFilter

          Show
          surfnerd Surf added a comment - Dhiraj Bokde Thanks..I rebuilt whole project and it worked ! On the other side, MQTT WS is not receiving messages at all ! (publish works fine) jvm 1 | WARN | Transport Connection to: MQTTSocket_1440179655 failed: java.io.IOException: org.apache.activemq.transport.ws.MQTTSocket cannot be cast to org.apache.activemq.transport.TransportFilter
          Hide
          dhirajsb Dhiraj Bokde added a comment -

          Hi Surf, sorry about that, I missed the fact that MQTTSocket implements TransportSupport and not TransportFilter. I added a couple of more commits to PR21, can you test them for MQTT WS?

          Show
          dhirajsb Dhiraj Bokde added a comment - Hi Surf , sorry about that, I missed the fact that MQTTSocket implements TransportSupport and not TransportFilter. I added a couple of more commits to PR21, can you test them for MQTT WS?
          Hide
          surfnerd Surf added a comment -

          Hey Dhiraj Bokde Thanks a lot. It is working on WS and MQTT both.

          One another weird behaviour( Can't find the reason and might not be related to this JIRA!)
          Steps to recreate :
          1. Download files that i uploaded
          2. Connect to broker with two_user
          3. Take another client and connect to broker with one_admin and subscribe to #
          4. Publish in two_user

          You will see message leaked to admin. Now if you connect to one_admin first then it wont happen !!

          Show
          surfnerd Surf added a comment - Hey Dhiraj Bokde Thanks a lot. It is working on WS and MQTT both. One another weird behaviour( Can't find the reason and might not be related to this JIRA!) Steps to recreate : 1. Download files that i uploaded 2. Connect to broker with two_user 3. Take another client and connect to broker with one_admin and subscribe to # 4. Publish in two_user You will see message leaked to admin. Now if you connect to one_admin first then it wont happen !!
          Hide
          dhirajsb Dhiraj Bokde added a comment -

          Hi Surf,

          I had a discussion with Dejan about the other option of using Retroactive consumers, and I believe I have come up with a solution in PR22 that works elegantly for both MQTT and JMS clients.

          Can you test PR-22 with your test client and verify that it works? Since it includes major changes to MQTT transport and minor changes to Broker core classes, it should be thoroughly tested and validated before being applied.

          Regards,
          Dhiraj.

          Show
          dhirajsb Dhiraj Bokde added a comment - Hi Surf, I had a discussion with Dejan about the other option of using Retroactive consumers, and I believe I have come up with a solution in PR22 that works elegantly for both MQTT and JMS clients. Can you test PR-22 with your test client and verify that it works? Since it includes major changes to MQTT transport and minor changes to Broker core classes, it should be thoroughly tested and validated before being applied. Regards, Dhiraj.
          Hide
          dhirajsb Dhiraj Bokde added a comment -

          Hi Surf, I've added more commits to PR-22 to fix durable subscriptions. The retained message test is also more elaborate. Hopefully this will be last change.

          Please let us know whether PR-22 works in your tests so it can be merged into Apache trunk.

          Thanks,
          Dhiraj.

          Show
          dhirajsb Dhiraj Bokde added a comment - Hi Surf , I've added more commits to PR-22 to fix durable subscriptions. The retained message test is also more elaborate. Hopefully this will be last change. Please let us know whether PR-22 works in your tests so it can be merged into Apache trunk. Thanks, Dhiraj.
          Hide
          surfnerd Surf added a comment -

          Dhiraj Bokde Sorry for late reply.
          I will definitely test and get back to you today. PR 22 looks more robust.

          Show
          surfnerd Surf added a comment - Dhiraj Bokde Sorry for late reply. I will definitely test and get back to you today. PR 22 looks more robust.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user dhirajsb closed the pull request at:

          https://github.com/apache/activemq/pull/21

          Show
          githubbot ASF GitHub Bot added a comment - Github user dhirajsb closed the pull request at: https://github.com/apache/activemq/pull/21
          Hide
          surfnerd Surf added a comment -

          Hey Dhiraj Bokde

          It is working good. I am checking 5187 from pull 24 though.

          Thanks

          Show
          surfnerd Surf added a comment - Hey Dhiraj Bokde It is working good. I am checking 5187 from pull 24 though. Thanks
          Hide
          dhirajsb Dhiraj Bokde added a comment -

          Hi Surf,

          Thanks for validating PR22. If you tested with PR24 that should be good, since it includes commits from PR22. We could just as well apply PR24 directly to ActiveMQ trunk. Also, are you testing Virtual Topics too, it is a pretty cool feature I added. I've written a post about it at http://rockablogbaby.blogspot.com/2014/05/scalable-iot-integration-using-apache.html

          Regards,
          Dhiraj.

          Show
          dhirajsb Dhiraj Bokde added a comment - Hi Surf , Thanks for validating PR22. If you tested with PR24 that should be good, since it includes commits from PR22. We could just as well apply PR24 directly to ActiveMQ trunk. Also, are you testing Virtual Topics too, it is a pretty cool feature I added. I've written a post about it at http://rockablogbaby.blogspot.com/2014/05/scalable-iot-integration-using-apache.html Regards, Dhiraj.
          Hide
          dejanb Dejan Bosanac added a comment -

          I applied PR22. Thanks Dhiraj for the contributions.

          All we need now is to document this new feature (http://activemq.apache.org/subscription-recovery-policy.html).

          Show
          dejanb Dejan Bosanac added a comment - I applied PR22. Thanks Dhiraj for the contributions. All we need now is to document this new feature ( http://activemq.apache.org/subscription-recovery-policy.html ).
          Hide
          dhirajsb Dhiraj Bokde added a comment -

          Hi Dejan, did you also apply the patch for AMQ-5187? That one is needed to support virtual topics for MQTT.

          Show
          dhirajsb Dhiraj Bokde added a comment - Hi Dejan, did you also apply the patch for AMQ-5187 ? That one is needed to support virtual topics for MQTT.
          Hide
          dejanb Dejan Bosanac added a comment -

          Hi Dhiraj,

          I didn't, I thought there's some more work left to be done there. Will do it next.

          Show
          dejanb Dejan Bosanac added a comment - Hi Dhiraj, I didn't, I thought there's some more work left to be done there. Will do it next.
          Hide
          surfnerd Surf added a comment -

          Hi Dhiraj Bokde and Dejan Bosanac,

          Is 5187 patch applied ?

          Show
          surfnerd Surf added a comment - Hi Dhiraj Bokde and Dejan Bosanac , Is 5187 patch applied ?
          Hide
          dhirajsb Dhiraj Bokde added a comment -

          Hi Surf, AMQ-5187 has been applied.

          Show
          dhirajsb Dhiraj Bokde added a comment - Hi Surf, AMQ-5187 has been applied.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user asfgit closed the pull request at:

          https://github.com/apache/activemq/pull/22

          Show
          githubbot ASF GitHub Bot added a comment - Github user asfgit closed the pull request at: https://github.com/apache/activemq/pull/22

            People

            • Assignee:
              dejanb Dejan Bosanac
              Reporter:
              surfnerd Surf
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development