Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.17
-
None
Description
If I config the Java Broker to use Base64MD5PasswordFilePrincipalDatabase principal database, I am unable to connect from the Java client if I am using the 0-10 protocol.
The exception seen client side is as follows:
org.apache.qpid.AMQException: Cannot connect to broker: Callback handler with support for AuthorizeCallback required [error code 320: connection forced] at org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:239) at org.apache.qpid.client.AMQConnection.makeBrokerConnection(AMQConnection.java:588) at org.apache.qpid.client.AMQConnection.<init>(AMQConnection.java:367) at org.apache.qpid.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:121) at org.apache.qpid.example.Hello.runTest(Hello.java:51) at org.apache.qpid.example.Hello.main(Hello.java:40) Caused by: org.apache.qpid.transport.ConnectionException: Callback handler with support for AuthorizeCallback required at org.apache.qpid.transport.ConnectionException.rethrow(ConnectionException.java:67) at org.apache.qpid.transport.Connection.connect(Connection.java:269) at org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:219) ... 5 more Caused by: org.apache.qpid.transport.ConnectionException: Callback handler with support for AuthorizeCallback required at org.apache.qpid.transport.Connection.closeCode(Connection.java:531) at org.apache.qpid.transport.ConnectionDelegate.connectionClose(ConnectionDelegate.java:75) at org.apache.qpid.transport.ConnectionDelegate.connectionClose(ConnectionDelegate.java:1) at org.apache.qpid.transport.ConnectionClose.dispatch(ConnectionClose.java:91) at org.apache.qpid.transport.ConnectionDelegate.control(ConnectionDelegate.java:49) at org.apache.qpid.transport.ConnectionDelegate.control(ConnectionDelegate.java:1) at org.apache.qpid.transport.Method.delegate(Method.java:163) at org.apache.qpid.transport.Connection.received(Connection.java:376) at org.apache.qpid.transport.Connection.received(Connection.java:1) at org.apache.qpid.transport.network.Assembler.emit(Assembler.java:97) at org.apache.qpid.transport.network.Assembler.assemble(Assembler.java:183) at org.apache.qpid.transport.network.Assembler.frame(Assembler.java:131) at org.apache.qpid.transport.network.Frame.delegate(Frame.java:128) at org.apache.qpid.transport.network.Assembler.received(Assembler.java:102) at org.apache.qpid.transport.network.Assembler.received(Assembler.java:1) at org.apache.qpid.transport.network.InputHandler.next(InputHandler.java:189) at org.apache.qpid.transport.network.InputHandler.received(InputHandler.java:105) at org.apache.qpid.transport.network.InputHandler.received(InputHandler.java:1) at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:152) at java.lang.Thread.run(Thread.java:662)
On the server side, I see the client selecting mechanism CRAM-MD5 despite the fact that the server has advertised only CRAM-MD5-HASHED and CRAM-MD5-HEX.
2012-06-27 10:37:07,432 DEBUG [IoReceiver - /127.0.0.1:37335] (Logger.java:54) - SEND: [conn:72392814] ch=0 ConnectionStart(serverProperties={qpid.federation_tag=20a742d2-22ab-432b-922e-060359332ade, qpid.features=[qpid.jms-selector]}, mechanisms=[CRAM-MD5-HEX, CRAM-MD5-HASHED], locales=[en_US])
2012-06-27 10:37:07,522 DEBUG [IoReceiver - /127.0.0.1:37335] (Logger.java:54) - RECV: [conn:72392814] ch=0 ConnectionStartOk(clientProperties={product=unknown, qpid.client_version=unknown, platform=Java(TM) SE Runtime Environment, 1.6.0_25-b06, Sun Microsystems Inc., amd64, Linux, 2.6.18-128.7.1.el5, unknown, qpid.session_flow=1, clientName=clientid, qpid.client_pid=19896, qpid.client_process=Qpid Java Client}, mechanism=CRAM-MD5)
If I use protocols 0-8...0-9-1, all works well.