2014-10-15 3 views
4

Java QPID 브로커를 사용하여 테스트 중입니다. 양성자 클라이언트를 사용하지만 익명 인증을 사용하여 메시지를 보내고받을 수있었습니다. 인증을 켜고 테스트하는 데 관심이 있으며 양성자 클라이언트가 (아직) 지원하지 않는다는 것을 이해합니다. 그래서 나는 rabbitMQ 클라이언트 항아리를 다운로드했다. 암호 파일 인증 (QPID와 함께 제공)을 사용하고 있습니다. RabbitMQ 클라이언트 인증 예외가있는 QPID 브로커

는이 같은 내 RabbitMQ 클라이언트 연결 팩토리 설정 : 코드 (특히의 getConnection에)이 라인에 실패

connectionFactory = new ConnectionFactory(); 
    connectionFactory.setHost("localhost"); 
    connectionFactory.setUsername("guest"); 
    connectionFactory.setPassword("guest"); 

.

때 java.io.IOException : - com.rabbitmq.client.impl.AMQConnection에서 [CRAM-MD5] 제공 서버를 찾을 수 없습니다 호환 인증 메커니즘

connection = RabbitMQConnectionFactory.getInstance().getConnection(); 

는 예외입니다. 시작에서 com.rabbitmq.client.ConnectionFactory.newConnection에서 com.rabbitmq.client.ConnectionFactory.newConnection에서 (AMQConnection.java:309) (ConnectionFactory.java:590) (ConnectionFactory.java:612) com.vue.rabbit.core.RabbitMQConnectionFactory.getConnection 내가 QPID을 변경하는 경우 com.vue.rabbit.producer.SimpleProducer.main (SimpleProducer.java:25)에서 (RabbitMQConnectionFactory.java:37)

브로커가 익명 인증을 사용하고 사용자/암호를 설정하지 않도록 클라이언트를 변경하려면 "서버 제공 [ANONYMOUS]"와 유사한 예외를받습니다.

잘못된 것이 있습니까? 이들은 호환되어야합니까? QVID 브로커가 둘 다 동일한 온라인 AMQP 프로토콜을 지원한다면 자바와 C++ QPID 브로커는 왜 그렇습니까? 어떤 도움을 주셔서 미리 감사드립니다!

답변

1

어떤 Java 브로커 버전을 사용하고 있습니까?

대답이 0.30 인 경우 PlainPasswordFile/Base64MD5PasswordFile 인증 공급자 (이전에 제공되는 구성의 기본값)는 SSL로 구성된 AMQP 포트를 사용하는 경우에만 클라이언트에 PLAIN SASL 메커니즘을 제공합니다. 이는 암호가 보호되지 않은 포트를 통해 일반 텍스트로 이동하는 것을 막기 위해 수행됩니다.

+0

K-벽 당신에 config.json 같은 것을 포함한다. 이 답변을 주셔서 감사합니다 – Scott

+1

안녕하세요 케이 - 벽! 이 동작을 비활성화하는 방법이 있습니까? 나는 격리 된 환경에서 AMQP 종속 모듈을 테스트하기 위해 qpid-broker를 사용하므로 로컬 "익명"qpid 브로커에서 암호 인증을 사용하고 싶습니다. –

+1

Qpid 0.28이 Spring AMQP와 함께 작동합니다. 브로커에서 버전 다운 그레이드가 가능하면 ... –

4

실제로 일반 SASL은 최신 QPID에서 지원되지만 권장하지 않습니다. documentation을 참조하십시오. 같이 "secureOnlyMechanisms": [] : - 그래 난이 0.30를 사용하고

 
"authenticationproviders" : [ { 
    "id" : "798fc4a5-8edb-4b42-b1b2-8f7e9be8cccb", 
    "name" : "passwordFile", 
    "type" : "PlainPasswordFile", 
    "path" : "${qpid.home_dir}${file.separator}etc${file.separator}passwd", 
    "secureOnlyMechanisms": [], 
    "preferencesproviders" : [ { 
     "id" : "1dcee789-be1b-49cc-9032-3bc4b974d1d6", 
     "name" : "fileSystemPreferences", 
     "type" : "FileSystemPreferences", 
     "path" : "${qpid.work_dir}${file.separator}user.preferences.json" 
    } ] 
관련 문제