Spring AMQP + RabbitMQ 3.3.5 ACCESS_REFUSED - 使用认证机制PLAIN拒绝登录

 XIE绍雄 发布于 2022-12-12 15:51

我正在低于例外

org.springframework.amqp.AmqpAuthenticationException:com.rabbitmq.client.AuthenticationFailureException:ACCESS_REFUSED - 使用身份验证机制PLAIN拒绝登录.有关详细信息,请参阅代理日志文件

配置:Windows上的RabbitMQ 3.3.5

在Config文件中,%APPDATA%\RabbitMQ\rabbit.config 我根据https://www.rabbitmq.com/access-control.html进行了以下更改

[{rabbit, [{loopback_users, []}]}].

我也试过创建一个user/pwd - 测试/测试似乎没有让它工作.

试过这篇文章中的步骤.

其他配置详细信息如下:

Tomcat托管了Spring Application Context:


    
    

    
    

    
    

    

    
        
            
        
    

在我的控制器类中

@Autowired
RmqMessageSender rmqMessageSender;

//Inside a method
rmqMessageSender.submitToECLDown(orderInSession.getOrderNo());

在我的邮件发件人:

import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component("messageSender")
public class RmqMessageSender  {

    @Autowired
    AmqpTemplate                rabbitTemplate;

    public void submitToRMQ(String orderId){
        try{
            rabbitTemplate.convertAndSend("Hello World");
        } catch (Exception e){
            LOGGER.error(e.getMessage());
        }
    }       
}

以上异常Block给出了以下异常


org.springframework.amqp.AmqpAuthenticationException:com.rabbitmq.client.AuthenticationFailureException:ACCESS_REFUSED - 使用身份验证机制PLAIN拒绝登录.有关详细信息,请参阅代理日志文件


错误日志

  =ERROR REPORT==== 7-Nov-2014::18:04:37 ===
closing AMQP connection <0.489.0> (10.1.XX.2XX:52298 -> 10.1.XX.2XX:5672):
    {handshake_error,starting,0,
                     {amqp_error,access_refused,
                                 "PLAIN login refused: user 'guest' can only connect via localhost",
                                 'connection.start_ok'}}

请在pom.xml条目下面找到

        
            org.springframework.amqp
            spring-rabbit
            1.3.6.RELEASE
        
        
            org.springframework.integration
            spring-integration-amqp
            4.0.4.RELEASE
        

如果您有任何想法/建议,请告诉我

4 个回答
  • 我确信Artem Bilan在这里解释的可能是导致此错误的原因之一:

    Caused by: com.rabbitmq.client.AuthenticationFailureException: 
    ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. 
    For details see the
    

    但对我来说解决方案是我登录到rabbitMQ管理页面(http:// localhost:15672 /#/ users),默认用户名和密码是guest/guest,然后添加了一个新用户,对于那个新用户我启用了从虚拟主机访问它的权限,然后使用新的用户名和密码而不是默认的guest虚拟机,这清除了错误.

    在此输入图像描述

    2022-12-12 15:53 回答
  • 要完成@ cpu-100的答案,

    如果您不想启用/使用Web界面,可以使用如下所示的命令行创建新凭据,并在代码中使用它来连接RabbitMQ.

    $ rabbitmqctl add_user YOUR_USERNAME YOUR_PASSWORD
    $ rabbitmqctl set_user_tags YOUR_USERNAME administrator
    $ rabbitmqctl set_permissions -p / YOUR_USERNAME ".*" ".*" ".*"
    

    2022-12-12 15:53 回答
  • 用户'guest'只能通过localhost连接

    自RabbitMQ 3.3.x以来这是真的.因此,您应该升级到客户端库的相同版本,或者只是将Spring AMQP升级到最新版本(如果使用依赖管理系统).

    以前版本的客户端用作选项的127.0.0.1默认值.hostConnectionFactory

    2022-12-12 15:53 回答
  • 错误

    ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.

    如果您的应用程序尝试用于连接到RabbitMQ的凭据不正确或丢失,则会发生.

    当存储在我的ASP.NET应用程序web.config文件中的RabbitMQ凭证""的密码值而不是实际的密码字符串值时,我就会发生这种情况.

    2022-12-12 15:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有