如何向RabbitMQ进行身份验证?

时间:2015-03-26 21:42:52

标签: java windows rabbitmq

我想开始使用rabbitmq客户端,从队列接收数据。这个队列是在线的,我有所有的信息来创建它的连接:

  • 宿主
  • 用户名
  • 密码
  • 虚拟主机
  • 端口

我在java中编写了一个应用程序来使用ConnectionFactory类创建连接:

import com.rabbitmq.client.ConnectionFactory;


public class Stats {


    public final static String TOKEN = "1234567";
    public final static String USER = "username";
    public final static String HOST = "amqp.host.org";
    public final static String VHOST = "topsecretdatas";
    public final static int PORT = 5672;


    public static void main(String[] args)
        throws java.io.IOException, java.lang.InterruptedException {

        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost(HOST);
        connectionFactory.setUsername(USER);
        connectionFactory.setPassword(TOKEN);
        connectionFactory.setVirtualHost(VHOST);

        connectionFactory.newConnection();
    }
}

但是在最后一行,引发了一个异常(com.rabbitmq.client.AuthenticationFailureException)。消息是:

  • “ACCESS_REFUSED - 使用身份验证机制PLAIN拒绝登录。有关详细信息,请参阅代理日志文件。”

所以:

  1. 我的电脑上有一些日志文件吗?我想没有..
  2. 我不知道如何更改身份验证机制。如何解决问题并建立连接?

2 个答案:

答案 0 :(得分:1)

这个答案可能会迟到,但我遇到了类似的问题,可能对其他人有帮助:

  1. RabbitMQ有日志文件。例如,如果您登录管理网页并向下滚动“概览”选项卡,则可以找到该位置。有一个“路径”部分:配置文件,数据库目录,日志文件& SASL日志文件。
    例如。在Windows 7下,可以在此处找到日志文件:C:/Users/<USERNAME>/AppData/Roaming/RabbitMQ/log/RABBIT~1.LOG
  2. 您可以更改身份验证机制。 PLAIN是大多数客户端的默认设置,但您也可以选择不同的客户端(您可能需要安装插件)。有关其他信息,请参阅此链接:https://www.rabbitmq.com/authentication.html

答案 1 :(得分:0)

是否创建了"username"?如果不是

所以你必须创建一个用户。

sudo rabbitmqctl add_user username mypass
sudo rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"
sudo rabbitmqctl set_user_tags username administrator