You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Chuck Rolke (JIRA)" <ji...@apache.org> on 2012/12/13 21:18:12 UTC

[jira] [Resolved] (QPID-4494) C++ Broker uses RoutingKey property during exchange declare Acl lookup

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

Chuck Rolke resolved QPID-4494.
-------------------------------

       Resolution: Not A Problem
    Fix Version/s: 0.18

The amqp::exchange::bound frame includes Exchange, Queue, Binding-key, and Args. The broker passes Exchange, Queue, and Binding-key to the Acl module for processing. It would be an error to remove the Binding-key value in the Acl call. 

The fact that the C++ Messaging client chooses not to pass a binding-key to the bound call is not an error either. Executing the same drain/spout commands through the Python client does not even generate an exchange::bound frame.
                
> C++ Broker uses RoutingKey property during exchange declare Acl lookup
> ----------------------------------------------------------------------
>
>                 Key: QPID-4494
>                 URL: https://issues.apache.org/jira/browse/QPID-4494
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.18
>            Reporter: Chuck Rolke
>            Assignee: Chuck Rolke
>             Fix For: 0.18
>
>
> The Acl interface to the broker during and exchange bound function includes an extraneous binding key parameter.
> The functions that trigger this lookup are illustrated here:
>   COMMAND LINE
>   ./spout "x-usera-1/a.x"
>   ON THE WIRE
>   2012-12-04 15:55:25 [Protocol] trace RECV [127.0.0.1:5672-127.0.0.1:46894]: Frame[BEbe; channel=1; {ExchangeBoundBody: exchange=x-usera-1; queue=x-usera-1; binding-key=; arguments={}; }]
>   ACL LOOKUP
>   2012-12-04 15:55:25 [Security] debug ACL: Lookup for id:anonymous action:access objectType:exchange name:x-usera-1 with params { routingkey= queuename=x-usera-1 }
> The user application is passing the binding key 'a.x' to the messaging client. However, the messaging client does not pass the binding key to the broker during the ExchangeBoundBody message. As a result the broker Acl lookup uses a blank routingkey.
> If the broker is configured with an Acl file that has an ACCESS EXCHANGE rule that specifies a routingkey then that rule will never match.
> The suggested change is to deprecate the routingkey property in the Acl ACCESS EXCHANGE rule processing. If a routingkey is specified then it will be ignored and a warning message will be issued. 
> If customers have 'access exchange' rules that use routingkey values specified then the Acl behavior may start matching rules that did not match before. However the log file will have an Acl warning and the broker will not fail to boot due to an Acl file processing error.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org