Я получаю исключение ниже
org.springframework.amqp.AmqpAuthenticationException: com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - в входе было отказано с использованием механизма аутентификации PLAIN. Подробнее см. Файл журнала брокера.
Конфигурация: RabbitMQ 3.3.5 для windows
В файле конфигурации %APPDATA%\RabbitMQ\rabbit.config
я сделал следующие изменения в соответствии с https://www.rabbitmq.com/access-control.html
[{rabbit, [{loopback_users, []}]}].
Я также попытался создать пользователя / pwd - test / test, похоже, не работает.
Пробовал шаги из этого сообщения.
Прочие сведения о конфигурации приведены ниже:
Tomcat разместил контекст приложения Spring:
<!-- Rabbit MQ configuration Start -->
<!-- Connection Factory -->
<rabbit:connection-factory id="rabbitConnFactory" virtual-host="/" username="guest" password="guest" port="5672"/>
<!-- Spring AMQP Template -->
<rabbit:template id="rabbitTemplate" connection-factory="rabbitConnFactory" routing-key="ecl.down.queue" queue="ecl.down.queue" />
<!-- Spring AMQP Admin -->
<rabbit:admin id="admin" connection-factory="rabbitConnFactory"/>
<rabbit:queue id="ecl.down.queue" name="ecl.down.queue" />
<rabbit:direct-exchange name="ecl.down.exchange">
<rabbit:bindings>
<rabbit:binding key="ecl.down.key" queue="ecl.down.queue"/>
</rabbit:bindings>
</rabbit:direct-exchange>
В моем классе контроллера
@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());
}
}
}
Блок исключений выше дает исключение ниже
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
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>1.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-amqp</artifactId>
<version>4.0.4.RELEASE</version>
</dependency>
Пожалуйста, дайте мне знать, если у вас есть какие-либо мысли / предложения
источник
Ответы:
Я уверен , что Артем Билан объяснил здесь может быть одна из причин этой ошибки:
но решение для меня заключалось в том, что я вошел на страницу администратора rabbitMQ ( http: // localhost: 15672 / # / users ) с именем пользователя и паролем по умолчанию, который является гостем / гостем, затем добавил нового пользователя и для этого нового пользователя я включил разрешение на доступ к нему с виртуального хоста, а затем использовал новое имя пользователя и пароль вместо гостя по умолчанию, и это устранило ошибку.
источник
Чтобы завершить ответ @ cpu-100 ,
если вы не хотите включать / использовать веб-интерфейс, вы можете создать новые учетные данные с помощью командной строки, как показано ниже, и использовать их в своем коде для подключения к RabbitMQ.
источник
Это верно, начиная с RabbitMQ 3.3.x. Следовательно, вам следует обновить клиентскую библиотеку до той же версии или просто обновить Spring AMQP до последней версии (если вы используете систему управления зависимостями).
Предыдущая версия клиента использовалась
127.0.0.1
как значение по умолчанию дляhost
опцииConnectionFactory
.источник
localhost
так:ConnectionFactory("localhost")
guest/guest
учетной записью ip работает глобально! :(Ошибка
ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
может возникнуть, если учетные данные, которые ваше приложение пытается использовать для подключения к RabbitMQ, неверны или отсутствуют.
У меня это произошло, когда учетные данные RabbitMQ, хранящиеся в файле моего приложения ASP.NET,
web.config
имели значение""
пароля вместо фактического значения строки пароля.источник
Чтобы разрешить гостевой доступ удаленно, напишите это
сюда
затем перезапустите службу Windows rabbitmq (Источник https://www.rabbitmq.com/access-control.html )
источник
Для меня решение было простым: имя пользователя чувствительно к регистру. Неиспользование правильных колпачков также приведет к ошибке.
источник
Новое решение:
Модуль узла не может
:
правильно обрабатывать пароль. Даже URL-адрес закодирован, вроде бы нормально работает, не работает.Не используйте в пароле типичные специальные символы из URL!
Как одно из следующих:
: . ? + %
Оригинальный, неправильный ответ:
Сообщение об ошибке явно жалуется на использование
PLAIN
, это не означает, что учетные данные неверны, это означает, что вы должны использовать зашифрованную доставку данных (TLS) вместо открытого текста.Изменение
amqp://
строки подключения наamqps://
(обратите вниманиеs
) решает эту проблему.источник
просто добавьте пароль для входа в RabbitMq
источник
если вы используете номер в качестве пароля, возможно, вам стоит попробовать изменить пароль, используя строку.
Я могу войти в систему с помощью deltaqin: 000000 на веб-сайте, но это было во время работы программы. затем измените пароль на deltaiqn. и это работает.
источник
Я сделал именно то, что сделал @grepit.
Но мне пришлось внести некоторые изменения в свой Java-код:
В проекте «Продюсер и приемник» я изменил:
При этом вы подключаете определенный хост в качестве пользователя, которого вы создали. Меня устраивает!
источник
Я столкнулся с этой проблемой из-за пустого места в конце пароля (spring.rabbitmq.password = rabbit) в приложении весенней загрузки. Свойства были разрешены при удалении пустого пространства. Надеюсь, этот контрольный список поможет кому-нибудь столкнуться с этой проблемой.
источник
установите ConnectionFactory или Connection hostname на localhost
источник