【问题标题】:Not able to connect to RabbitMq server using a particular user无法使用特定用户连接到 RabbitMq 服务器
【发布时间】:2015-09-06 21:27:46
【问题描述】:

我尝试使用 MassTransit 使用以下代码连接到特定的 RabbitMq 机器

var bus = ServiceBusFactory.New(x =>
      {
        x.UseRabbitMq();
        x.ReceiveFrom("rabbitmq://admin:admin@<IP Address>/somequeue");

        moreInitialization(x);
      });

我在 vhost "\" 中创建了一个具有管理员权限的用户。

cmd:> rabbitmqctl list_permissions
Listing permissions in vhost "/" ...
admin   .*      .*      .*

我已删除“访客”用户。即使我使用下面的代码,我也可以在 rabbitmq 日志中看到如下

=ERROR REPORT==== 21-Jun-2015::12:19:22 ===
closing AMQP connection <0.391.0> (192.168.6.1:7000 -> 192.168.6.131:5672):
{handshake_error,starting,0,
                 {amqp_error,access_refused,
                             "PLAIN login refused: user 'guest' - invalid credentials",
                             'connection.start_ok'}}

在应用程序端,我收到以下错误

Exception:Thrown: "ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile." (RabbitMQ.Client.Exceptions.AuthenticationFailureException)
A RabbitMQ.Client.Exceptions.AuthenticationFailureException was thrown: "ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile."

我需要更改 rabbitmq.config 文件中的任何配置吗?我正在使用 RabbitMq 服务器版本 3.5.3

感谢您的帮助

【问题讨论】:

  • 你能解决你的问题吗?也许我们有类似的问题。特定用户不允许脚本登录。我们仔细检查了凭据,它在具有相同脚本和用户 ID 的单独系统上运行良好。即使再次设置密码也无济于事。只有删除和新创建用户有帮助。就像最初创建用户时出了点问题,但当时没有任何问题。

标签: rabbitmq masstransit


【解决方案1】:

要指定凭据,您需要显式配置主机。由于安全凭证泄露,不再支持 @ 语法。

例如:

var bus = ServiceBusFactory.New(sbc =>
{
    sbc.UseRabbitMq(r => r.ConfigureHost(new Uri("rabbitmq://actual-server-name/queue-name"), h =>
    {
        h.SetUsername("username");
        h.SetPassword("password");
    }));
    sbc.ReceiveFrom("rabbitmq://actual-server-name/queue-name");
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多