RabbitMQ + Web Stomp and security
RabbitMQ + Web Stomp and security
RabbitMQ+Web Stomp非常棒。但是,我有一些主题希望以只读或只读的方式进行安全保护。
似乎唯一的安全机制是使用rabbitmqctl。我可以创建一个vhost,一个用户,然后应用一些权限。然而,这就是Stomp和Rabbit实现开始崩溃的地方。
topics的形式是:stomp中的/topic/blah,它用路由键"blah"路由到Rabbit中的"amq.topic"。似乎没有办法为路由密钥设置权限。似乎:
rabbitmqctl set_permissions -p vhost user ".*" ".*" "^amq'.topic"
是我能做的最好的事情,这仍然是"所有"的话题。我也研究过交换,但在javascript中没有办法动态定义这些交换。
我是不是遗漏了什么?
参考:http://www.rabbitmq.com/blog/2012/05/14/introducing-rabbitmq-web-stomp/
试试这个https://github.com/simonmacmullen/rabbitmq-auth-backend-http它更灵活。基本上,它是一个用于rabbit的小型身份验证插件,通过http(您可以完全控制)将ACL决策委托给一个脚本,该脚本只需回复"允许"或"拒绝"
是的,使用RabbitMQ WebStomp,您几乎只能使用普通的RabbitMQ权限集。这并不理想,但您应该能够正确设置基本权限。看看RabbitMQ文档:
http://www.rabbitmq.com/access-control.html
快速查看stomp文档:
http://www.rabbitmq.com/stomp.html
是的,您不能为特定的路由密钥设置权限。也许您应该使用"exchange"语义,并显式地将交换与队列绑定(即:不使用主题):
/exchange/exchange_name[/routing_key]。
请在rabbitmqdiscusse邮件列表中询问有关RMQ权限的具体问题。那里的人真的很乐于助人。
不幸的是,RMQ权限集对于一些更复杂的场景是不够的。在这种情况下,您可能想要:
- 只使用STOMP来读取数据,并且只使用一些可以直接在内部与rabbit对话的外部AJAX接口发布消息
- 或者,不要使用web stomp插件,手动在SockJS和RabbitMQ之间编写一个简单的桥梁。这给了你更多的灵活性,但需要更多的工作
- Selenium WebDriver and JavaScript change
- PHP and Javascript functions
- Javascript Return and if/else
- SetTimeout and clearTimeout in Javascript
- lightbox in html 5 and javascript
- TimelineJS and AngularJS
- timeago.js with datatable and PHP
- javascript button ajax and php
- Ajax and Json with Rails
- Combine onload, onresize and onclick
- php布尔值's小写AND大写和数字布尔值'可以接受
- setTimeout and V8
- Jquery post and onclick
- Moment js and IOS
- Rails 3.2 and Paloma gem
- Backbone, TypeScript, and super
- RabbitMQ + Web Stomp and security
- JavaScript Games and Security
- MySQL Security with PHP, javascript, and HTML?
- CouchDB and Cloudant Security