尝试使用 JSON 文件为rabbitmq 配置和创建管理员用户。用户已创建。但我在使用有效凭据从 Web 管理控制台登录时收到以下错误。
2022-07-22 08:15:56.342071+00:00 [warning] <0.847.0> HTTP access denied: user 'admin' - invalid credentials
我的配置和docker文件如下。
rabbitmq.config
[
{rabbit, [
{loopback_users, [admin]}
]},
{rabbitmq_management, [
{load_definitions, "/etc/rabbitmq/definitions.json"}
]}
].
definitions.json
{
"users": [
{
"name": "guest",
"password_hash": "abcd",
"hashing_algorithm": "rabbit_password_hashing_sha256",
"tags": ""
},
{
"name": "admin",
"password_hash": "admin123",
"hashing_algorithm": "rabbit_password_hashing_sha256",
"tags": "administrator"
}
],
"vhosts": [
{
"name": "/"
}
],
"permissions": [
{
"user": "admin",
"vhost": "/",
"configure": ".*",
"write": ".*",
"read": ".*"
}
],
}
FROM rabbitmq:3.9-management
COPY conf/rabbitmq.config /etc/rabbitmq/
COPY conf/definitions.json /etc/rabbitmq/
RUN chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config /etc/rabbitmq/definitions.json
CMD ["rabbitmq-server"]
我还尝试使用rabbitmqctl
登录
>>rabbitmqctl authenticate_user admin admin123
Authenticating user "admin" ...
Error:
Error: failed to authenticate user "admin"
user 'admin' - invalid credentials
当使用rabbitmqctl change_password admin admin123
更改密码时,一切似乎都工作正常。
rabbitmq启动日志中唯一的警告是
2022-07-22 08:15:30.218099+00:00 [warning] <0.652.0> Message store "628WB79CIFDYO9LJI6DKMI09L/msg_store_persistent": rebuilding indices from scratch
有人可以告诉我可能的原因和解决方案吗?如果我遗漏了任何内容,过度或低估了某个特定点,请在评论中告诉我。非常感谢您抽出时间。
最佳答案
您的定义文件必须包含密码的HASH,而不是密码本身。一般来说,我所做的就是像您一样通过 change_password
设置用户密码,然后导出当前定义。您会注意到它们包含哈希密码。
您也可以自己生成哈希值。看这个:
How to generate password_hash for RabbitMQ Management HTTP API
关于docker - RabbitMQ 凭证与 Web 管理界面的有效信息无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73077579/