Using Non-SASL digest auth (the method used by jabber4r in your XML) you need to specify a resource for the user at the time of login. I don't know how to do that as I've never used that library. Notice the empty <resource/> element in the iq set you sent for authentication. That is not allowed. See the JEP fo Non-SASL Authentication for more details. http://www.jabber.org/jeps/jep-0078.html
JD > -----Original Message----- > From: Neil Mc Laughlin [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 06, 2004 7:25 AM > To: [EMAIL PROTECTED] > Subject: [jdev] Jabber4r > > Hi all, > I am quite new to jabber programming, so my apologies - this > is probably > quite basic stuff. > > I want to write a jabber bot in ruby using the Jabber4r > library. The first > generation bot will just logon to the jabber server without > throwing an > exception, but I haven't got that far yet. I'm hoping someone can spot > what's going wrong here. > > Briefly, when the script trys to logon, the server refuses to > authorize the > connection. The error is 406 - Not Acceptable. The same uid & > password works > fine with rhymbox or exodus. > > The xml dialogue is included below, first for the script and > then for a > exodus session logging into the same account. > > > Software versions below. > Ruby version: ruby 1.8.0 (2003-08-04) [i386-mswin32] > Jabber version: Jabber4r 0.6.0 for Ruby 1.8.1 > Running on win 2k with Cygwin. uname -a output follows: > CYGWIN_NT-5.0 neil 1.5.5(0.94/3/2) 2003-09-20 16:31 i686 > unknown unknown > Cygwin > > > This is the script. > #!/usr/bin/env ruby > require 'jabber4r/jabber4r' > Jabber::DEBUG = true > session = Jabber::Session.bind('[EMAIL PROTECTED]', 'password', > 5222, true) > > nb: 'password' isn't my real password. > > This is a transcript of the script running. > bash-2.05b$ jab.rb > SENDING: > <?xml version="1.0" encoding="UTF-8" ?><stream:stream to="jabber" > xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams"> > RECEIVED: > > <stream:stream xmlns:stream"http://etherx.jabber.org/streams" > from"jabber" > id"407275C1" xmlns"jabber:client"/> > SENDING: > <iq type="set" id="2"> > <query xmlns="jabber:iq:auth"><username>neilmcl</username> > <digest>a729db796aa737fb20755a154689a22c6c423bce</digest> > <resource/> > </query> > </iq> > RECEIVED: > > <iq type"error" id"2"> > <error code"406">Not Acceptable</error> > <query xmlns"jabber:iq:auth"> > <resource/> > <digest > sid"407275C1">a729db796aa737fb20755a154689a22c6c423bce</digest> > <username>neilmcl</username> > </query> > </iq> > ./jab.rb:7: warning: already initialized constant DEBUG > d:/ruby/lib/ruby/site_ruby/1.8/jabber4r/session.rb:141:in `bind': > Authentication failed (RuntimeError) > from ./jab.rb:9 > bash-2.05b$ > > This is a transcript of the equivalent exodus login. > SENT: <stream:stream to="jabber" xmlns="jabber:client" > xmlns:stream="http://etherx.jabber.org/streams" version="1.0" > > RECV: <?xml version='1.0'?><stream:stream > xmlns:stream='http://etherx.jabber.org/streams' id='40727C56' > xmlns='jabber:client' from='jabber'> > SENT: <iq id="jcl_7" type="get"><query > xmlns="jabber:iq:auth"><username>neilmcl</username></query></iq> > RECV: <iq id='jcl_7' type='result'><query > xmlns='jabber:iq:auth'><username>neilmcl</username><password/> <digest/><sequ > ence>495</sequence><token>3F040A38</token><resource/></query></iq> > SENT: <iq id="jcl_8" type="set"><query > xmlns="jabber:iq:auth"><username>neilmcl</username><resource>E xodus</resourc > e><hash>acfb2bd52679a19c25bb758894ac905e7f308689</hash></query></iq> > RECV: <iq id='jcl_8' type='result'/> > > Cheers everyone, > Neil > > _______________________________________________ > jdev mailing list > [EMAIL PROTECTED] > https://jabberstudio.org/mailman/listinfo/jdev > _______________________________________________ jdev mailing list [EMAIL PROTECTED] https://jabberstudio.org/mailman/listinfo/jdev
