Benoit Tellier created JAMES-3475:
-------------------------------------

             Summary: RabbitMQMailQueue should not require administrative rights
                 Key: JAMES-3475
                 URL: https://issues.apache.org/jira/browse/JAMES-3475
             Project: James Server
          Issue Type: Improvement
          Components: Queue, rabbitmq
    Affects Versions: master
            Reporter: Benoit Tellier
         Attachments: 20201211_115241.jpg, 20201211_115802.jpg

## Why

Today, James requires management API rights to list mail queues.

Why?
 - List of mailqueues can be heterogeneous across the cluster (especially in 
case of specialized instances)
 - AMQP client do not support listing mail queues
 - Thus we ended up relying on the management plugin.

This, of course, is a security violation, as it might lead to right escalation, 
and might affect other tenants co-hosted on RabbitMQ.

## Definition of Done

 - [ ] James no longer require administrative rights
 - [ ] An ADR needs to be written about this

## How

As deleting a mail queue is not a supporting implementation, we can rely on a 
`Set<String>` cassandra table containing the names of the mail queues in use.

James nodes can then rely on this to know if a mail queue is used or not.

Eventual consistency will be achieved between this cassandra view and the 
actual rabbitMQ content:
 - Register a created queue in Cassandra first, then create it in Rabbit.
 - Given a cassandra registered queue, not existing in rabbit, a james node 
restart configured with that queue will create the queue in rabbit.




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to