Hello Jacub,

this helps a lot.

Thank you!

Andreas

On Fri, Nov 10, 2017 at 4:59 PM, Jakub Scholz <ja...@scholz.cz> wrote:

> Hi Andreas,
>
> The problem is that in qpidd you never publish directly to queue or read
> directly from an exchange. You always publish to exchange and read from a
> queue. In reality what you see as publishing directly to an queue is
> sending the message to an exchange named "" (as in empty string) with a
> routing key which should be the name of your queue. The same when you try
> to read directly from an exchange the client acutally creates a queue and a
> binding to the exchange for you. That is why the ACL rules such as "publish
> queue" or "consume exchange" do not exist.
>
> In your case ... if your group wants to publish to queue name QU1, you
> should add a rule which looks something like this:
> acl allow group1 publish exchange name=amq.default routingkey=QU1
> where the exchange name "amq.default" will be substituted for the exchange
> without name (as per https://issues.apache.org/jira/browse/QPID-4727)
>
> To read directly from an exchange you need several ACL rights:
> - to create a queue
> acl allow group1 create queue name=*
> - to delete a queue when you are closing the connection
> acl allow group1 delete queue name=*
> - to consume from the queue
> acl allow group1 consume queue name=*
> - to bind the exchange
> acl allow group1 bind exchange name=EX1
>
> Depending on your client you might be able to specify the queue name in
> more detail. For example the qpid-receive client (using the old Qpid C++
> API) would create the queue named similar to
> "EX1_8f4ea08f-d211-41c0-97cf-652cd5ef9a11". But different clients might do
> it differently.
>
> Hope this helps.
>
> Jakub
>
>
> On Fri, Nov 10, 2017 at 3:46 PM, andi welchlin <andi.welch...@gmail.com>
> wrote:
>
> > Hello everyone,
> >
> > I looked into ACL documentation of Qpid C++ broker (1.36.0) and tested
> it a
> > bit.
> >
> >
> > I would like to allow for one usergroup to write to a queue with a
> specific
> > name, but deny it for all other users.
> >
> > But I saw that i can not do the following:
> >
> > acl allow group1 publish queue name=QU1
> >
> >
> > I understood that the publish keyword can only be used for exchanges.
> >
> >
> > I also would like to restrict reading from an exchange with a specific
> name
> > and allow it only for one usergroup.
> >
> > But the following seems also not to be allowed:
> >
> > acl allow group1 consume exchange name=EX1
> >
> >
> > "consume" is only allowed for queues.
> >
> >
> > How can I reach these two requirements?
> >
> >
> > Kind Regards,
> > Andreas
> >
>

Reply via email to