[jdev] Jabber4r
JD Conley
jconley at winfessor.com
Tue Apr 6 11:36:21 CDT 2004
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:nml at fjserv.net]
> Sent: Tuesday, April 06, 2004 7:25 AM
> To: jdev at jabber.org
> 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('neilmcl at jabber', '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
> jdev at jabber.org
> https://jabberstudio.org/mailman/listinfo/jdev
>
More information about the JDev
mailing list