Hi Fraser,
there is a bug in Java client disallowing no credentials option, see 
https://issues.apache.org/jira/browse/QPID-3396.

Kind regards,
Pavel


----- Original Message -----
> From: "Fraser Adams" <fraser.ad...@blueyonder.co.uk>
> To: users@qpid.apache.org
> Sent: Friday, January 25, 2013 11:07:29 AM
> Subject: Could somebody *please* explain Java Connection URLs...:-)
> 
> It's a little embarrassing 'cause I've kind of been using these for a
> couple of years, but as they are ever so slightly obtuse :-> I've
> generally been lazy/pragmatic and did copy'n'paste of things that
> have
> worked.
> 
> 
> Because of the various URL differences (the ones used by the python
> tools, the qpid::messaging amqp URL and the Java ConnectionURL I also
> wrote a ConnectionHelper class to allow me to specify URLs in any
> format). This class basically creates a Java ConnectionURL with
> sensible
> values filled in when I specify one of the shorter (AKA more
> convenient!!) formats.
> 
> I'm generally OK on the brokerList sub URLs and the options I put in
> there seem to be fine.....
> 
> However I've just been bitten. 'Cause I've been a bit lazy and mostly
> tested and tinkered with qpidd --auth no or actually used a proper
> user/password I ended up having defaults of guest:guest in
> ConnectionHelper. This hasn't hitherto been an issue for me but
> standing
> up a vanilla qpidd with auth yes the unsecured authentication
> username
> is anonymous *not* guest.....
> 
> 
> 
> The documentation
> http://qpid.apache.org/books/0.20/Programming-In-Apache-Qpid/html/QpidJNDI.html#id2553965
> says:
> 
> amqp://[<user>:<pass>@][<clientid>]<virtualhost>[?<option>='<value>'[&<option>='<value>']]
> 
> But I'm not convinced that's accurate. I've been hacking around with
> a
> few ConnectionURLs in a JNDI file and
> 
> # simple URL with user = guest
> #connectionfactory.ConnectionFactory =
> amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672'
> 
> # Omitting the clientid bit seems to work OK
> #connectionfactory.ConnectionFactory =
> amqp://guest:guest@/test?brokerlist='tcp://localhost:5672'
> 
> # Omitting the virtualhost bit seems to work too, but the slash is
> important e.g. /test and / work test does not??
> #connectionfactory.ConnectionFactory =
> amqp://guest:guest@/?brokerlist='tcp://localhost:5672'
> 
> 
> But I *cannot* get/figure out how to do anonymous from a Java Client
> to
> a C++ broker.
> 
> According to the BNF form in the documentation
> connectionfactory.ConnectionFactory =
> amqp://clientid/test?brokerlist='tcp://localhost:5672'
> 
> *should* work as [<user>:<pass>@] ought to be optional, but that just
> gives "connectionFactory lookup failed, retrying" with both --auth no
> and --auth yes
> 
> Same for
> 
> connectionfactory.ConnectionFactory =
> amqp://@clientid/test?brokerlist='tcp://localhost:5672'
> 
> If I do
> 
> connectionfactory.ConnectionFactory =
> amqp://:@clientid/test?brokerlist='tcp://localhost:5672'
> 
> That actually connects to a broker with --auth no, but barfs with an
> error "warning Failed to retrieve sasl username" on a broker with
> --auth yes
> 
> connectionfactory.ConnectionFactory =
> amqp://anonymous:@clientid/test?brokerlist='tcp://localhost:5672'
> Actually connects to a broker with --auth no, but barfs with no error
> on
> a broker with --auth yes and a "connectionFactory lookup failed,
> retrying"
> 
> When I add info logging I get
> 
> main 2013-01-25 09:51:26,539 INFO [apache.qpid.client.AMQConnection]
> Connection:amqp://anonymous:********@clientid/test?brokerlist='tcp://localhost:5672'
> main 2013-01-25 09:51:26,973 INFO
> [qpid.client.protocol.AMQProtocolSession] Using ProtocolVersion for
> Session:0-10
> main 2013-01-25 09:51:26,995 INFO
> [qpid.client.handler.ClientMethodDispatcherImpl] New Method
> Dispatcher:AMQProtocolSession[null]
> main 2013-01-25 09:51:27,016 INFO [apache.qpid.client.AMQConnection]
> Connecting with ProtocolHandler Version:0-10
> main 2013-01-25 09:51:27,167 INFO [apache.qpid.client.AMQConnection]
> Unable to connect to broker at tcp://localhost:5672
> org.apache.qpid.AMQException: *Cannot connect to broker:
> connection-forced: Authentication failed [error code 320: context in
> use*]
>      at
> org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:203)
>      at
> org.apache.qpid.client.AMQConnection.makeBrokerConnection(AMQConnection.java:609)
>      at org.apache.qpid.client.A...............
> 
> Logging at DEBUG doesn't give any more useful info.
> 
> I've tried
> 
> connectionfactory.ConnectionFactory =
> amqp://anonymous:anonymous@clientid/test?brokerlist='tcp://localhost:5672'
> connectionfactory.ConnectionFactory =
> amqp://anonymous:""@clientid/test?brokerlist='tcp://localhost:5672'
> connectionfactory.ConnectionFactory =
> amqp://anonymous:''@clientid/test?brokerlist='tcp://localhost:5672'
> connectionfactory.ConnectionFactory = amqp://anonymous:
> @clientid/test?brokerlist='tcp://localhost:5672'
> 
> 
> and they *all* barf out :-(
> 
> So could someone please tell me what the magic incantation is on a
> Java
> ConnectionURL for connecting with anonymous from a Java Client to a
> C++
> broker.
> 
> just to confirm too that I've tried qpid-config with no parameters to
> the same broker with auth on and off and that works fine so it looks
> like anonymous "authentication" is actually working, just not with
> Java.
> 
> I'm still using 0.12 if that makes any difference (hope to hit 0.20
> soon
> but wanted to look at this first)
> 
> 
> Any ideas??
> 
> Cheers,
> Frase
> 
> 
> 
> 
> 
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to