I am trying to send message to RabbitMQ from a springboot application. Dependencies used (springboot & amqp) :
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
<version>2.1.6.RELEASE</version>
</dependency>
I can publish message to the exchange using user credentials with below access(read, write and configure):
but it fails when I use user without configure permission as below :
error received while calling rabbitTemplate.convertAndSend(exchange, null, message);
:
CachingConnectionFactory : Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=403, reply-text=ACCESS_REFUSED - access to exchange 'MyExchangeName' in vhost 'my_vHost' refused for user 'my_user', class-id=40, method-id=10
I think it is because Spring it trying to create exchange or check if exchange is present (using Admin API). If that's the case can we disable it using some property?