On 23 Mar 2011, at 17:53, Danushka Menikkumbura wrote:
Hi Marnie,

So, "properties" in "public Result authorise(Operation operation, ObjectType objectType, ObjectProperties properties)" should include the vhost name?. I
do not see anything like that.

Thanks,
Danushka

On Wed, Mar 23, 2011 at 10:14 PM, Marnie McCormack <
[email protected]> wrote:

Hi Danushka,

The ACLs (v2) on the java broker are specified per virtual host, so the
queue permissions already have a 'namepsace' effectively.

If you look at virtualhosts-systests-aclv2-settings.xml you'll see where virtualhost level acl files get specified. Thus permissions for foo on different vhosts get specified separately,and the call into authorise done
at the vhost level.

Danushka,

Here is an example showing what Marnie described. Suppose we have two virtualhosts, 'test' and 'dev', with *separate* ACL files specified in 'virtualhosts.xml' for each, contents as follows:

test ACL file:
        acl allow client create queue name="client.queue"
        acl allow guest create queue name="guest.queue"

dev ACL file:
        acl allow guest create queue name="client.queue"
        acl allow client create queue name="guest.queue"

This table shows the results of different users trying to create queues of various names on both virtualhosts:

        user    vhost   queueName       result
        ----    -----   ---------       ------
        client  test    client.queue    yes
        guest   test    guest.queue     yes
        client  test    guest.queue     no
        guest   test    client.queue    no
        client  dev     client.queue    no
        guest   dev     guest.queue     no
        client  dev     guest.queue     yes
        guest   dev     client.queue    yes

This works because the ACL file is associated with a virtualhost configuration, as are broker configured entities such as queues. However, it is also possible to specify a *global* ACL file, and the protections specified in that file will apply to all virtual hosts, regardless. The correct/only way to obtain the behaviour described above is by creating an ACL file per virtualhost.

Andrew.
--
-- andrew d kennedy ? do not fold, bend, spindle, or mutilate ;
-- http://grkvlt.blogspot.com/ ? edinburgh : +44 7582 293 255 ;

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to