Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-4090

Can't connect from Java Client to Java Broker when Broker uses Base64MD5PasswordFilePrincipalDatabase principal database (0-10 protocol only)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.17
    • 0.17
    • Broker-J, JMS AMQP 0-x
    • 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.

      Attachments

        Activity

          People

            robbie Robbie Gemmell
            kwall Keith Wall
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: