Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
qpid-java-6.0.6, qpid-java-6.1.1
-
None
Description
There is a defect in Base64MD5PasswordFilePrincipalDatabase that means that whilst the a authentication provider of type Base64MD5PasswordFile advertises PLAIN at attempt to use it fails later with following stack trace reported by the client.
The user who wishes to use PLAIN can work around by using an alternative authentication provider that offers plain support e.g. SCRAM.
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java -Dqpid.amqp.version=0-10 -Dqpid.sasl_mechs=PLAIN -Didea.launcher.port=7537 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/tools.jar:/Users/keith/src/qpid-java/client/example/target/classes:/Users/keith/src/qpid-java/client/target/classes:/Users/keith/src/qpid-java/common/target/classes:/Users/keith/.m2/repository/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.1.1/geronimo-jms_1.1_spec-1.1.1.jar:/Users/keith/.m2/repository/org/slf4j/slf4j-api/1.7.12/slf4j-api-1.7.12.jar:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain org.apache.qpid.example.Hello SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. javax.jms.JMSException: Error creating connection: Unsupported mechanism: PLAIN at org.apache.qpid.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:134) at org.apache.qpid.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:57) at org.apache.qpid.example.Hello.runTest(Hello.java:60) at org.apache.qpid.example.Hello.main(Hello.java:48) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) Caused by: org.apache.qpid.AMQConnectionFailureException: Unsupported mechanism: PLAIN at org.apache.qpid.client.AMQConnection.makeConnection(AMQConnection.java:659) at org.apache.qpid.client.AMQConnection.<init>(AMQConnection.java:509) at org.apache.qpid.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:130) ... 8 more Caused by: org.apache.qpid.AMQException: Cannot connect to broker (tcp://localhost:5672): Unsupported mechanism: PLAIN [error code 320: connection forced] at org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:270) at org.apache.qpid.client.AMQConnection.makeBrokerConnection(AMQConnection.java:804) at org.apache.qpid.client.AMQConnection.makeConnection(AMQConnection.java:570) ... 10 more Caused by: org.apache.qpid.transport.ConnectionException: Unsupported mechanism: PLAIN at org.apache.qpid.transport.ConnectionException.rethrow(ConnectionException.java:67) at org.apache.qpid.transport.Connection.connect(Connection.java:278) at org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:240) ... 12 more Caused by: org.apache.qpid.transport.ConnectionException: Unsupported mechanism: PLAIN at org.apache.qpid.transport.Connection.closeCode(Connection.java:565) at org.apache.qpid.transport.ConnectionDelegate.connectionClose(ConnectionDelegate.java:76) at org.apache.qpid.transport.ConnectionDelegate.connectionClose(ConnectionDelegate.java:41) at org.apache.qpid.transport.ConnectionClose.dispatch(ConnectionClose.java:91) at org.apache.qpid.transport.ConnectionDelegate.control(ConnectionDelegate.java:50) at org.apache.qpid.transport.ConnectionDelegate.control(ConnectionDelegate.java:41) at org.apache.qpid.transport.Method.delegate(Method.java:157) at org.apache.qpid.transport.Connection.received(Connection.java:401) at org.apache.qpid.transport.network.Assembler.emit(Assembler.java:100) at org.apache.qpid.transport.network.Assembler.assemble(Assembler.java:191) at org.apache.qpid.transport.network.Assembler.frame(Assembler.java:134) at org.apache.qpid.transport.network.Frame.delegate(Frame.java:128) at org.apache.qpid.transport.network.Assembler.received(Assembler.java:105) at org.apache.qpid.transport.network.InputHandler.next(InputHandler.java:206) at org.apache.qpid.transport.network.InputHandler.received(InputHandler.java:121) at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:164) at java.lang.Thread.run(Thread.java:745) Process finished with exit code 0
Protocol trace looks like this:
2017-01-26 08:23:20,135 DEBUG [IO-/127.0.0.1:49724] (o.a.q.t.Connection) - SEND: [conn:5f4b2f78] ch=0 ConnectionStart(serverProperties={product=qpid, qpid.virtualhost_properties_supported=true, qpid.features=[qpid.jms-selector], qpid.message_compression_supported=true, qpid.federation_tag=af020393-6737-43c2-9614-000cf046ef2b, qpid.build=Unversioned directory, version=6.1.2-SNAPSHOT, qpid.queue_lifetime_supported=true, qpid.instance_name=Broker}, mechanisms=[CRAM-MD5-HASHED, CRAM-MD5-HEX, PLAIN], locales=[en_US]) 2017-01-26 08:23:20,135 DEBUG [IO-/127.0.0.1:49724] (o.a.q.t.Connection) - FLUSH: [conn:5f4b2f78] 2017-01-26 08:23:20,135 DEBUG [IO-/127.0.0.1:49724] (o.a.q.s.t.NonBlockingConnection) - Written 424 bytes 2017-01-26 08:23:20,136 DEBUG [IO-/127.0.0.1:49724] (o.a.q.s.t.NonBlockingConnection) - Read 0 byte(s) 2017-01-26 08:23:20,149 DEBUG [IO-/127.0.0.1:49724] (o.a.q.s.t.NonBlockingConnection) - Read 343 byte(s) 2017-01-26 08:23:20,150 DEBUG [IO-/127.0.0.1:49724] (o.a.q.t.Connection) - RECV: [conn:5f4b2f78] ch=0 ConnectionStartOk(clientProperties={qpid.session_flow=1, product=qpid, qpid.client_process=Apache Qpid JMS Client for AMQP 0-9-1/0-10, clientName=clientid, qpid.client_pid=1604, qpid.client_version=6.1.2-SNAPSHOT, platform=Java(TM) SE Runtime Environment, 1.8.0_121-b13, Oracle Corporation, x86_64, Mac OS X, 10.12.2, unknown}, mechanism=PLAIN, response="\x00guest\x00guest") 2017-01-26 08:23:20,150 DEBUG [IO-/127.0.0.1:49724] (o.a.q.t.Connection) - SEND: [conn:5f4b2f78] ch=0 ConnectionClose(replyCode=CONNECTION_FORCED, replyText=Unsupported mechanism: PLAIN) 2017-01-26 08:23:20,150 DEBUG [IO-/127.0.0.1:49724] (o.a.q.t.Connection) - FLUSH: [conn:5f4b2f78]
This problem is already eliminated on trunk with the work of QPID-7283.