lhost / sendxmpp

perl-script to send xmpp (jabber), similar to what mail(1) does for mail.
63 stars 22 forks source link

Error 'AuthSend': error: not-authorized[?] with suchat.org #27

Open s-nt-s opened 7 years ago

s-nt-s commented 7 years ago

Hi I have used sendxmpp with severals xmpp serves without problems, but now I am having problems with suchat.org

pi@cacharro ~ $ echo "hi" | sendxmpp -d -v -j suchat.org -u account1@suchat.org -p ******** -t account2@suchat.org
XML::Stream: new: hostname = (cacharro)
XML::Stream: SetCallBacks: tag(node) func(CODE(0xac1760))
XMPP::Conn: xmppCallbackInit: start
XMPP::Conn: SetCallBacks: tag(message) func(CODE(0xb71aa0))
XMPP::Conn: SetCallBacks: tag(presence) func(CODE(0xac1e08))
XMPP::Conn: SetCallBacks: tag(iq) func(CODE(0x13ec700))
XMPP::Conn: SetPresenceCallBacks: type(unsubscribed) func(CODE(0xac5028))
XMPP::Conn: SetPresenceCallBacks: type(unsubscribe) func(CODE(0xac48c0))
XMPP::Conn: SetPresenceCallBacks: type(subscribed) func(CODE(0xab8a58))
XMPP::Conn: SetPresenceCallBacks: type(subscribe) func(CODE(0xac1df0))
XMPP::Conn: SetDirectXPathCallBacks: xpath(/[@xmlns="urn:ietf:params:xml:ns:xmpp-tls"]) func(CODE(0xab8cf8))
XMPP::Conn: SetDirectXPathCallBacks: xpath(/[@xmlns="urn:ietf:params:xml:ns:xmpp-sasl"]) func(CODE(0xac48d8))
XMPP::Conn: xmppCallbackInit: stop
sendxmpp: ssl_verify: 1
sendxmpp: tls_ca_path: 
XMPP::Conn: Connect: host(suchat.org:5222) namespace(jabber:client)
XMPP::Conn: Connect: timeout(10)
XML::Stream: Connect: type(tcpip)
XML::Stream: Connect: Got a connection
XML::Stream: Send: (<?xml version='1.0'?><stream:stream version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='suchat.org' from='cacharro' xml:lang='en' >)
XML::Stream: Read: buff(<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='11414518187186101349' from='suchat.org' version='1.0' xml:lang='es'><stream:features><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/' ver='AgG2WDG3fcWthSkifewdOQ7NadE='/><starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'><required/></starttls><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression></stream:features>)
XML::Stream: _handle_root: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(stream:stream) att( from suchat.org xmlns jabber:client id 11414518187186101349 xml:lang es version 1.0 xmlns:stream http://etherx.jabber.org/streams )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(stream:features) att( )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(c) att( xmlns http://jabber.org/protocol/caps node http://www.process-one.net/en/ejabberd/ ver AgG2WDG3fcWthSkifewdOQ7NadE= hash sha-1 )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(c)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(starttls) att( xmlns urn:ietf:params:xml:ns:xmpp-tls )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(required) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(required)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(starttls)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(compression) att( xmlns http://jabber.org/features/compress )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(method) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) cdata(zlib)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0xac2498)) cdata(zlib)
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(method)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(compression)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0xac2498)) tag(stream:features)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XMPP::Conn: Connect: connection made
XML::Stream: SetCallBacks: tag(node) func(CODE(0xac1880))
XML::Stream: Send: (<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>)
XML::Stream: Read: buff(<proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>)
XML::Stream: Node: _handle_element: sid(11414518187186101349) sax(XML::Stream::Parser=HASH(0xac2498)) tag(proceed) att( xmlns urn:ietf:params:xml:ns:xmpp-tls )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_close: sid(11414518187186101349) sax(XML::Stream::Parser=HASH(0xac2498)) tag(proceed)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XML::Stream: TLSClientProceed: Convert normal socket to SSL
XML::Stream: TLSClientProceed: sock(IO::Socket::INET=GLOB(0x13ec790))
XML::Stream: LoadSSL: Load the IO::Socket::SSL module
XML::Stream: LoadSSL: Success
XML::Stream: TLSClientProceed: ssl_sock(IO::Socket::SSL=GLOB(0x13ec790))
XML::Stream: TLSClientProceed: SSL: We are secure
XML::Stream: Process: block(0)
XML::Stream: Send: (<?xml version='1.0'?><stream:stream version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='suchat.org' from='cacharro' xml:lang='en' >)
XML::Stream: Read: buff(<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='4076701549342428227' from='suchat.org' version='1.0' xml:lang='es'>)
XML::Stream: _handle_root: sid(11414518187186101349) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(stream:stream) att( id 4076701549342428227 version 1.0 xml:lang es xmlns:stream http://etherx.jabber.org/streams from suchat.org xmlns jabber:client )
XML::Stream: Read: buff(<stream:features><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/' ver='AgG2WDG3fcWthSkifewdOQ7NadE='/><register xmlns='http://jabber.org/features/iq-register'/><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism><mechanism>DIGEST-MD5</mechanism><mechanism>X-OAUTH2</mechanism><mechanism>SCRAM-SHA-1</mechanism></mechanisms></stream:features>)
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(stream:features) att( )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(c) att( node http://www.process-one.net/en/ejabberd/ ver AgG2WDG3fcWthSkifewdOQ7NadE= xmlns http://jabber.org/protocol/caps hash sha-1 )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(c)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(register) att( xmlns http://jabber.org/features/iq-register )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(register)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(compression) att( xmlns http://jabber.org/features/compress )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(method) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(zlib)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(zlib)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(method)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(compression)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanisms) att( xmlns urn:ietf:params:xml:ns:xmpp-sasl )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(PLAIN)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(PLAIN)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(DIGEST-MD5)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(DIGEST-MD5)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(X-OAUTH2)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(X-OAUTH2)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism) att( )
XML::Stream: Node: _handle_element: check( 1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(SCRAM-SHA-1)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(SCRAM-SHA-1)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanism)
XML::Stream: Node: _handle_close: check( 2 )
XML::Stream: Node: _handle_close: check2( 1 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(mechanisms)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(stream:features)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XML::Stream: Process: block(0)
sendxmpp: Connect: 1
XMPP::Conn: AuthSASL: shiney new auth
XML::Stream: Send: (<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'></auth>)
XMPP::Conn: AuthSASL: haven't authed yet... let's wait.
XMPP::Conn: Process: timeout(1)
XML::Stream: Read: buff(<challenge xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>bm9uY2U9IjU1ODcyNDA1NTA4MTkwODY3NDAiLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=</challenge>)
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(challenge) att( xmlns urn:ietf:params:xml:ns:xmpp-sasl )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_cdata: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(bm9uY2U9IjU1ODcyNDA1NTA4MTkwODY3NDAiLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x1488a70)) cdata(bm9uY2U9IjU1ODcyNDA1NTA4MTkwODY3NDAiLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=)
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(challenge)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XML::Stream: Send: (<response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>YXV0aHppZD0iY3l0dG9yYWtAc3VjaGF0Lm9yZ0BzdWNoYXQub3JnIixjaGFyc2V0PXV0Zi04LGNub25jZT0iNDFiODZkMGJiODNlZDA0YThkMzk5NWUzZTM1YThjNGYiLGRpZ2VzdC11cmk9InhtcHAvc3VjaGF0Lm9yZyIsbmM9MDAwMDAwMDEsbm9uY2U9IjU1ODcyNDA1NTA4MTkwODY3NDAiLHFvcD1hdXRoLHJlc3BvbnNlPTYxNWIzMjI0ZDAyNzg3ZjU0YTU3MTVkZjgzOWY4ZmFiLHVzZXJuYW1lPSJjeXR0b3Jha0BzdWNoYXQub3JnIg==</response>)
XML::Stream: Process: block(0)
XMPP::Conn: AuthSASL: haven't authed yet... let's wait.
XMPP::Conn: Process: timeout(1)
XML::Stream: Read: buff(<failure xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><not-authorized/></failure>)
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(failure) att( xmlns urn:ietf:params:xml:ns:xmpp-sasl )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(not-authorized) att( )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(not-authorized)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(4076701549342428227) sax(XML::Stream::Parser=HASH(0x1488a70)) tag(failure)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XML::Stream: Process: block(0)
XMPP::Conn: AuthSASL: Authentication failed.
Error 'AuthSend': error: not-authorized[?]
XML::Stream: Send: (</stream:stream>)
XML::Stream: SetCallBacks: tag(node) func(CODE(0x148eb38))
XMPP::Conn: Disconnect: bye bye
sendxmpp: Disconnect

I don't know if the problem is suchat.org (In https://www.suchat.org/?page_id=229 you can see the configuration of this server) or there is something wrong in sendxmpp.

suchatorg commented 7 years ago

Hay un problema entre la lib Perl XMPP y algunos servidores Jabber (ejabberd, ...). Una solución al problema es editar el archivo "Net/XMPP/ Protocol.pm" con su editor de texto favorito. En Debian, el directorio « Net » se encuentra en "/usr/share/perl5/." Bajo Fedora, que se encuentra en "/usr/lib/perl5/vendor_perl/5.8.x/".

Ir a 1,772 Online: return $ self-> AuthSASL (% args); Y comentar la línea mediante la adición de "#":

return $ self-> AuthSASL (% args);