docker - RabbitMQ 凭证与 Web 管理界面的有效信息无效

标签 docker rabbitmq rabbitmqctl

尝试使用 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/

相关文章:

python - "Error: Failed to initialize erlang distribution:"试图运行 "rabbitmqctl status"

docker - 创建在Dockerfile中用作FROM时从目录复制文件夹的Docker镜像

docker-compose 获取 docker 的 ID

java - 关于 Solace 属性何时有效的困惑

java - 无法使用spring boot从另一台服务器连接rabbitmq

Rabbitmq无需重启即可重新加载/刷新新证书

docker - 如何将 docker 镜像传递给客户端?

RabbitMQ:默认的 x-message-ttl 值是多少

python - puka 可以与 gevent 或 eventlet 配合使用吗?

rabbitmq - Rabbitmq 中的缩放