- From the README: > The plugin hooks into the basic.publish, exchange.bind and queue.bind pathes. You probably mean "paths" - You probably want to update the copyright here, since this doesn't belong to Pivotal: https://github.com/antoine-galataud/rabbitmq-topic-authorization/blob/master/src/rabbit_topic_authorization.erl#L14 - `applies_to` perhaps needs to also include the other methods like `queue.bind` - Maybe your plugin wants to also intercept _unbind_ methods? - Why do you use the process dictionary to keep the cache? Yes, I know we do it in RabbitMQ and we should stop using that as much as we can, but in your case I think it's quite easy to keep a dictionary inside the interceptor state. https://github.com/antoine-galataud/rabbitmq-topic-authorization/blob/master/src/rabbit_topic_authorization.erl#L48 - Why do you access tuple elements this way? https://github.com/antoine-galataud/rabbitmq-topic-authorization/blob/master/src/rabbit_topic_authorization.erl#L68 why not just restructure your interceptor state on the function's head? In this way it would be pretty clear that you are passing a VHost or a User. - There is no such thing in RabbitMQ as a resource kind=routing_key https://github.com/antoine-galataud/rabbitmq-topic-authorization/blob/master/src/rabbit_topic_authorization.erl#L90 Resources are either Exchanges or Queues. Note that what you are doing would work, but it's actually abusing the system in place, not using it as expected.
You probably mean "paths"
applies_toperhaps needs to also include the other methods likequeue.bind