📜  rabbitmq 使用纯文本登录被拒绝 - ActionScript (1)

📅  最后修改于: 2023-12-03 15:04:46.581000             🧑  作者: Mango

RabbitMQ 使用纯文本登录被拒绝 - ActionScript

在使用 RabbitMQ 进行纯文本登录时,遇到了被拒绝的情况。本篇介绍可能的原因,并提供解决方法。

问题描述

我们使用 ActionScript 的 AMQP 库连接 RabbitMQ,并设置了纯文本的认证方式(PLAIN)。

var conn:AMQPConnection = new AMQPConnection();
conn.username = "guest";
conn.password = "guest";
conn.vhost = "/";
conn.auth = AMQP.AUTH_PLAIN;

conn.connect("localhost", 5672);

连接时,出现了以下报错信息:

Error: Connection refused by broker: not-allowed

该错误可能有以下原因:

原因
1. RabbitMQ 不支持纯文本方式登录

在默认情况下,RabbitMQ 禁止纯文本方式登录,需要使用加密的认证方式。可以在 RabbitMQ 的配置文件中设置开启 PLAIN 认证:

{rabbit, [
    {auth_backends, [rabbit_auth_backend_internal]},
    {auth_mechanisms, ['PLAIN','AMQPLAIN']},
    {default_user, <<"guest">>},
    {default_pass, <<"guest">>},
    {default_vhost, <<"/">>}
]}.
2. 帐号密码错误

检查连接 RabbitMQ 的帐号密码是否正确。

3. Virtual host 设置不正确

检查连接时的 Virtual host 是否设置正确。

解决方法
1. 开启 PLAIN 认证

在 RabbitMQ 的配置文件中设置开启 PLAIN 认证。

2. 确认帐号密码正确

检查连接 RabbitMQ 的帐号密码是否正确。

3. 确认 Virtual host 设置正确

检查连接时的 Virtual host 是否设置正确。

结论

在使用纯文本方式登录 RabbitMQ 时,需要注意开启 PLAIN 认证并设置正确的帐号密码与Virtual host。同时,由于纯文本模式下的帐号密码易受到其它业务透视等网络攻击,建议使用加密的认证方式连接 RabbitMQ 服务器。