一旦要把模块上线,那么安全就成了一个关注点。这在互联网领域更是焦点话题!
我在本地开启RabbitMQ Server后,用 localhost 去连接其默认vhost(“/”),代码一切正常,无需提供用户名密码。
但是一旦把localhost换成真实ip,RabbitMQ就会立刻提示你无权限操作(或者你尝试用localhost去连接非默认vhost也会报错)!
那么我们只需要为RabbitMQ创建用户即可:
rabbitmqctl add_user kazaff 123456
如果需要创建新的vhos:
rabbitmqctl add_vhost foo
然后还要把新创建的账户绑定到指定的vhost上:
rabbitmqctl set_permissions -p foo kazaff ".*" ".*" ".*"
后面3个".*"分别代表kazaff用户拥有对foo虚拟机的配置,写,读等权限。举个例子:
- ".*":表示匹配任何Exchange和queue;
- " ":表示不匹配任何Exchange和queue;
- "kazaff-*":表示匹配任何以kazaff-开头的Exchange和queue。
其他相关的命令如下:
rabbitmqctl list_permissions -p vhost //查看vhost上用户权限列表
rabbitmqctl list_user_permissions user //查看user用户在所有vhost上的配置权限列表
rabbitmqctl clear_permissions -p vhost user //删除vhost上user的权限