Closed yeseong31 closed 1 year ago
admin
계정으로 시도했지만 시스템 내부에서는 guest
로 인식하는 것만 알고, 여러 가지 시도를 해보기로 했다.3.12.3
으로 설정하고 있다.3.11.16
이었다.FROM rabbitmq:3.11.16-management
RUN rabbitmq-plugins enable rabbitmq_stomp
COPY rabbitmq.conf /etc/rabbitmq/rabbitmq.conf
admin/admin
으로 RabbitMQ에 접근하는 과정에 문제가 있는 것이다.username/password
으로 계정을 다르게 하여 문제를 확인해보고자 했다.env.properties
의 설정을 다음과 같이 수정했다.RABBITMQ_USERNAME=username
RABBITMQ_PASSWORD=password
RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -p 61613:61613 --restart=unless-stopped -e RABBITMQ_DEFAULT_USER=username -e RABBITMQ_DEFAULT_PASS=password rabbitmq:management
2023-08-27T03:12:33.158+09:00 ERROR 15212 --- [ent-scheduler-1] o.s.m.s.s.StompBrokerRelayMessageHandler : Received ERROR {message=[Bad CONNECT], content-type=[text/plain], version=[1.0,1.1,1.2], content-length=[32]} session=_system_ text/plain payload=Access refused for user 'guest'
StompWebSocketConfig
의 설정 누락이 현재 issue의 원인이었다.StompWebSocketConfig
의 configureMessageBroker()
메서드는 다음과 같이 작성되어 있었다.@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setPathMatcher(new AntPathMatcher("."));
registry.setApplicationDestinationPrefixes("/pub");
// registry.enableSimpleBroker("/sub");
registry.enableStompBrokerRelay(
"/queue", "/topic", "/exchange", "/amq/queue")
.setRelayPort(STOMP_CLIENT_PORT)
.setRelayHost(RABBITMQ_HOST)
.setClientLogin(RABBITMQ_USERNAME)
.setClientPasscode(RABBITMQ_PASSWORD);
}
guest/guest
로 로그인을 진행한다.env.properties
설정을 변경해고, 적용되지 않았던 것이다.guest/guest
를 적용하는 것은 공식 문서에도 나와 있지 않은 부분이라고 한다.configureMessageBroker()
메서드에 시스템 로그인 부분에 해당하는 setSystemLogin()
과 setSystemPasscode()
를 registry
에 체인 형식으로 추가했고, 정상적으로 username/password
로 로그인되는 것을 확인할 수 있었다.@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setPathMatcher(new AntPathMatcher("."));
registry.setApplicationDestinationPrefixes("/pub");
// registry.enableSimpleBroker("/sub");
registry.enableStompBrokerRelay(
"/queue", "/topic", "/exchange", "/amq/queue")
.setRelayPort(STOMP_CLIENT_PORT)
.setRelayHost(RABBITMQ_HOST)
.setClientLogin(RABBITMQ_USERNAME)
.setClientPasscode(RABBITMQ_PASSWORD)
.setSystemLogin(RABBITMQ_USERNAME)
.setSystemPasscode(RABBITMQ_PASSWORD);
}
도커 이미지 적용 후 프로젝트 실행 시 접근 오류
admin/admin
을 사용하는 것을 확인했다.env.properties
를 다음과 같이 수정했다.