Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-3475

RabbitMQMailQueue should not require administrative rights

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • master
    • None
    • Queue, rabbitmq
    • None

    Description

        1. 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.

        1. Definition of Done
      • [ ] James no longer require administrative rights
      • [ ] An ADR needs to be written about this
        1. 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.

      Attachments

        1. 20201211_115802.jpg
          3.29 MB
          Benoit Tellier
        2. 20201211_115241.jpg
          3.47 MB
          Benoit Tellier

        Activity

          People

            Unassigned Unassigned
            btellier Benoit Tellier
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: