Michael Andre Pearce created ARTEMIS-1872:
---------------------------------------------

             Summary: Correctly check for queue exists before creating shared 
queue
                 Key: ARTEMIS-1872
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1872
             Project: ActiveMQ Artemis
          Issue Type: Bug
    Affects Versions: 2.5.0
            Reporter: Michael Andre Pearce


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.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to