我有以下配置文件,它来自
export
命令
{
"rabbit_version": "3.9.18",
"rabbitmq_version": "3.9.18",
"product_name": "RabbitMQ",
"product_version": "3.9.18",
"users": [{
"name": "bureau_user",
"password_hash": "gr0kazwxxxxxxOQwblCoB68LX3hcr0QFVl+a/0M5gLYIScw",
"hashing_algorithm": "rabbit_password_hashing_sha256",
"tags": [],
"limits": {}
}, {
"name": "monolito_user",
"password_hash": "tT3rNrxxxxxxDJ9Rp3kJ8ul1vGRCmS/2aYjxDUub/NSKvnSe",
"hashing_algorithm": "rabbit_password_hashing_sha256",
"tags": [""],
"limits": {}
}, {
"name": "guest",
"password_hash": "WRz7lNSxxxxxxkNClznlp1uJ5g9HJFwm8ANK3IPOyuoUmWw",
"hashing_algorithm": "rabbit_password_hashing_sha256",
"tags": ["administrator"],
"limits": {}
}],
"vhosts": [{
"name": "/"
}],
"permissions": [{
"user": "guest",
"vhost": "/",
"configure": ".*",
"write": ".*",
"read": ".*"
}, {
"user": "monolito_user",
"vhost": "/",
"configure": ".*", <<<<<< with this empty, I get the error
"write": ".*",
"read": ".*"
}],
"topic_permissions": [],
"parameters": [],
"global_parameters": [{
"name": "internal_cluster_id",
"value": "rabbitmq-cluster-id-e5ChXZuOJaCyj8rQwbGkLA"
}],
"policies": [],
"queues": [{
"name": "messages",
"vhost": "/",
"durable": true,
"auto_delete": false,
"arguments": {}
}],
"exchanges": [{
"name": "messages",
"vhost": "/",
"type": "fanout",
"durable": true,
"auto_delete": false,
"internal": false,
"arguments": {}
}],
"bindings": [{
"source": "messages",
"vhost": "/",
"destination": "messages",
"destination_type": "queue",
"routing_key": "",
"arguments": {}
}]
}
根据测试,我得出的结论是,如果用户没有
configure
权限,则我无法从Symfony Messenger/PHP发布消息
"Server channel error: 403, message: ACCESS_REFUSED - access to exchange 'messages' in vhost '/' refused for user 'monolito_user'", class: "AMQPExchangeException"
如果我添加
配置
权限,则用户可以执行此操作。
为什么?我只想
write/read
就可以了。