【问题标题】:Connection error SASL error with QPID and AmqNetLiteQPID 和 AmqNetLite 的连接错误 SASL 错误
【发布时间】:2019-02-01 22:44:54
【问题描述】:

我不熟悉 AMQP。 我尝试将 AmqpNetLite 程序连接到 Qpid 服务器,但出现以下异常: Amqp.AmqpException: sasl-mechanisms(sasl-server-mechanisms:[CRAM-MD5,SCRAM-SHA-1,SCRAM-SHA-256])

注意:我可以连接到基本的 AMQP 服务器,但不能连接到 QPID。

这是创建连接的代码:

请告诉我从哪里开始解决我的问题。

void Main(string[] args)
{     
    try
    {
    Address address = new Address("amqp://guest:guest@localhost:5672");
    Connection connection = new Connection(address);
    Session session = new Session(connection);
    ReceiverLink receiver = new ReceiverLink(session, "receiver-link", "queue");
    Message message = receiver.Receive();
    receiver.Accept(message);
    receiver.Close();
    session.Close();
    connection.Close();
    }
    catch (Exception ex)
    {
       Console.WriteLine(ex.ToString());
    }
    Console.ReadLine();
}

【问题讨论】:

  • 您能否确认您使用的是哪个 Qpid 服务器实现(和版本)? Apache Qpid 项目有两个:Qpid CPP Broker 和 Qpid Broker-J(这是一个 Java 实现)。
  • Qpid Broker-J 版本:6.1 AmqpNetLite 2.1.6

标签: c# amqp qpid sasl


【解决方案1】:

该错误似乎表明代理无法向客户端提供其支持的 SASL 机制。我认为 AmqpNetLite 只做 ANONYMOUS、PLAIN 和 EXTERNAL 但也许这已经改变了。您可以查看您的代理配置并将其中一种机制提供给客户端,这可能会允许匹配和成功的身份验证。或者您可以使用 SSL 连接,然后允许这些 SASL 机制工作并为您的连接提供一些额外的安全性。

Broker-J 文档站点的security section 应该为您提供一些启示。

【讨论】:

  • 是的,确实如此:目前仅支持 SASL PLAIN、EXTERNAL 和 ANONYMOUS。
猜你喜欢
  • 2021-07-24
  • 1970-01-01
  • 2020-09-04
  • 2017-10-17
  • 2019-04-15
  • 2014-09-07
  • 2014-03-20
  • 2020-02-09
  • 2018-10-06
相关资源
最近更新 更多