Federation with conflicting user permissions #4912
Unanswered
barkofdelight
asked this question in
Questions
Replies: 1 comment 3 replies
-
Permissions work for federation links the same way they do for other clients. However, federation links only have one approach to reacting to errors: they fail and restart. An upstream cannot "fail", not any more than a channel or queue replica can fail. It can simply reject certain client operations. Federation links won't propagate channel errors to clients. Therefore it is highly advisable to use users with sufficient permissions so that links do not run into permission violations often. The only way to find that out would be from the logs. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
I'm seeing behavior I don't expect when using Federation with user permissions.
On RabbitB I create an upstream to RabbitA using UserA's credentials. On RabbitA, UserA does not have full permissions. (In my test UserA was limited to a specific Topic Read regexp.) UserB on RabbitB is not restricted.
When a pika client connects to RabbitB as UserB and binds to the forwarded exchange, all works well if the routing key is allowed for UserA on RabbitA. But what is expected when the routing key is not allowed?
I expected the client to report an error as it would when connecting directly to RabbitA as UserA. But what happens is that the client thinks everything has worked! Meanwhile, the upstream fails and starts repeatedly restarting.
Since the upstream is failing, other clients of RabbitB relying on that upstream no longer receive messages.
I don't see much documentation about using Federation along with user permissions. What is the expected behavior?
Thanks.
[RabbitMQ 3.9.11, Erlang 24.2]
Beta Was this translation helpful? Give feedback.
All reactions