Saya mendapatkan pengecualian di bawah ini
org.springframework.amqp.AmqpAuthenticationException: com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login ditolak menggunakan mekanisme otentikasi PLAIN. Untuk detailnya lihat logfile broker.
Konfigurasi: RabbitMQ 3.3.5 di windows
Pada file Config di %APPDATA%\RabbitMQ\rabbit.config
saya telah melakukan perubahan di bawah ini sesuai https://www.rabbitmq.com/access-control.html
[{rabbit, [{loopback_users, []}]}].
Saya juga mencoba membuat pengguna / pwd - test / test sepertinya tidak berhasil.
Mencoba Langkah-langkah dari posting ini .
Detail Konfigurasi Lainnya adalah sebagai berikut:
Konteks Aplikasi Musim Semi yang dihosting Tomcat:
<!-- 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>
Di Kelas Pengontrol saya
@Autowired
RmqMessageSender rmqMessageSender;
//Inside a method
rmqMessageSender.submitToECLDown(orderInSession.getOrderNo());
Di pengirim Pesan Saya:
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());
}
}
}
Pengecualian di atas Blok memberikan Pengecualian di bawah
org.springframework.amqp.AmqpAuthenticationException: com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login ditolak menggunakan mekanisme otentikasi PLAIN. Untuk detailnya lihat logfile broker.
Catatan eror
=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'}}
Pls temukan di bawah entri 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>
Tolong beri tahu saya jika Anda memiliki pemikiran / saran
sumber
Jawaban:
Saya yakin apa yang dijelaskan Artem Bilan di sini mungkin menjadi salah satu penyebab kesalahan ini:
tetapi solusi bagi saya adalah saya masuk ke halaman admin rabbitMQ ( http: // localhost: 15672 / # / users ) dengan nama pengguna dan kata sandi default yaitu tamu / tamu kemudian menambahkan pengguna baru dan untuk pengguna baru itu saya mengaktifkan izin untuk mengaksesnya dari host virtual dan kemudian menggunakan nama pengguna dan sandi baru, bukan tamu default, dan itu menghapus kesalahan.
sumber
Untuk melengkapi jawaban @ cpu-100 ,
jika Anda tidak ingin mengaktifkan / menggunakan antarmuka web, Anda dapat membuat kredensial baru menggunakan baris perintah seperti di bawah ini dan menggunakannya dalam kode Anda untuk terhubung ke RabbitMQ.
sumber
Itu benar sejak RabbitMQ 3.3.x. Oleh karena itu, Anda harus meningkatkan ke versi yang sama dengan pustaka klien, atau cukup memutakhirkan Spring AMQP ke versi terbaru (jika Anda menggunakan sistem manajemen ketergantungan).
Versi klien sebelumnya digunakan
127.0.0.1
sebagai nilai default untukhost
opsiConnectionFactory
.sumber
localhost
seperti ini:ConnectionFactory("localhost")
guest/guest
akun ip yang ditetapkan biru berfungsi secara global! :(Kesalahannya
ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
dapat terjadi jika kredensial yang coba digunakan aplikasi Anda untuk terhubung ke RabbitMQ salah atau hilang.
Saya mengalami ini terjadi ketika kredensial RabbitMQ yang disimpan di
web.config
file aplikasi ASP.NET saya memiliki nilai""
untuk kata sandi alih-alih nilai string kata sandi yang sebenarnya.sumber
Untuk mengizinkan akses tamu dari jarak jauh, tulis ini
ke sini
kemudian restart layanan windows rabbitmq (Sumber https://www.rabbitmq.com/access-control.html )
sumber
Bagi saya, solusinya sederhana: nama pengguna peka huruf besar / kecil. Gagal menggunakan tutup yang benar juga akan menyebabkan kesalahan.
sumber
Solusi baru:
Modul node tidak dapat menangani
:
kata sandi dengan benar. Bahkan url yang dikodekan, seperti itu akan bekerja secara normal, itu tidak berfungsi.Jangan gunakan karakter khusus khas dari URL dalam kata sandi!
Seperti salah satu dari berikut ini:
: . ? + %
Asli, jawaban salah:
Pesan error tersebut jelas mengeluh tentang penggunaan
PLAIN
, bukan berarti crendentialsnya salah, itu artinya anda harus menggunakan encrypted data delivery (TLS) bukan plaintext.Mengubah
amqp://
string koneksi keamqps://
(perhatikans
) memecahkan masalah ini.sumber
cukup tambahkan kata sandi login untuk terhubung ke RabbitMq
sumber
jika Anda menggunakan nomor tersebut sebagai kata sandi Anda, mungkin Anda harus mencoba mengubah kata sandi Anda menggunakan string.
Saya dapat login menggunakan deltaqin: 000000 di situs web, tetapi saya memilikinya saat menjalankan program. kemudian ubah kata sandi menjadi deltaiqn. dan berhasil.
sumber
Saya membuat persis seperti yang dibuat @grepit.
Tetapi saya harus membuat beberapa perubahan dalam kode Java saya:
Dalam proyek Produser dan Penerima, saya mengubah:
Melakukan itu, Anda menghubungkan host tertentu sebagai pengguna yang Anda buat. Ini berhasil untuk saya!
sumber
Saya menghadapi masalah ini karena ruang kosong di akhir kata sandi (spring.rabbitmq.password = kelinci) di aplikasi boot musim semi. Properti diselesaikan dengan menghapus ruang kosong. Semoga daftar periksa ini membantu seseorang menghadapi masalah ini.
sumber
setel ConnectionFactory atau Hostname koneksi ke localhost
sumber