Uploaded image for project: 'ActiveMQ Artemis'
  1. ActiveMQ Artemis
  2. ARTEMIS-1872

Correctly check for queue exists before creating shared queue

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.5.0, 2.6.0
    • 2.6.1, 2.7.0
    • None
    • None

    Description

      Prior to 2.5.0, artemis incorrectly always checked the perms for Non Durable on createSharedQueue , even if the queue being created was a Durable queue.

      securityCheck(address, name, CheckType.CREATE_NON_DURABLE_QUEUE, this);

       

      In 2.5.0+ this has been corrected, so it checks the permissions appropriately for the durability.

      securityCheck(address, name, durable ? CheckType.CREATE_DURABLE_QUEUE : CheckType.CREATE_NON_DURABLE_QUEUE, this);

       

      This though has exposed that in some area's of the Core client code, and also AMQP, and OpenWire that the code isn't checking that queue exists before calling to create it, meaning a client with consume permission but without create durable queue permissions, would fail but should not as the queue exists.

      Also it was noted on creating the test case to prove this that AMQP JMS Client when security exception occurs, was not correctly throwing JMSSecurityException, this is due to the broker not returning the correct AMQP error code, in these circumstances.

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            michael.andre.pearce Michael Andre Pearce
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: