CODE
## [kJabber] -->> SND [<stream:stream to='] >>--
## [kJabber] -->> SND [192.168.132.155] >>--
## [kJabber] -->> SND [' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>] >>--
## [kJabber] --<< RCV [<?xml version='1.0'?><stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' from='192.168.132.155' id='swinltbqqgvfif826eqkrxefpu5mweiob0cxunnk'>] <<--
## [kJabber] -->> SND [<iq id='j4' type='get'><query xmlns='jabber:iq:auth'><username>hornet</username></query></iq>] >>--
## [kJabber] -->> SND [<iq id='j5' type='set'><query xmlns='jabber:iq:auth'><username>hornet</username><resource>Konnekt</resource><digest>335e2217e5effaebed858c9a1a95f4dc275c1fa2</digest></query></iq>] >>--
## [kJabber] --<< RCV [<iq xmlns='jabber:client' id='j4' type='result'><query xmlns='jabber:iq:auth'><username>p.moll</username><resource/><password/></query></iq>] <<--
## [kJabber] --<< RCV [<iq xmlns='jabber:client' type='error' id='j5'><error code='401'/><query xmlns='jabber:iq:auth'><username>hornet</username><resource>Konnekt</resource><digest>3321ffed858c9a14dc275ca2</digest></query></iq>] <<--
## [kJabber] !!! B│╣d autoryzacji! code=401 msg= !!!
Teraz parę słów komentarza:
Na większości serwerów istnieje możliwość autoryzacji przez skrót kryptograficzny hasła (digest). Oczywiście to dobrze. Ale czasami - np. w przypadku autoryzacji w serwerze LDAP - serwer wymaga wysłania hasła czystym tekstem, co w sumie w przypadku połączenia via SSL nie jest dużym problemem.
Po kolei:
- Klient prosi o przeprowadzenie autoryzacji i podaje nazwę użytkownika:CODE<iq id='j4' type='get'><query xmlns='jabber:iq:auth'><username>hornet</username></query></iq>
- Serwer potwierdza tą wiadomość i prosi o podanie zasobu i hasła:
CODE<iq xmlns='jabber:client' id='j4' type='result'><query xmlns='jabber:iq:auth'><username>p.moll</username><resource/><password/></query>
(zwracam uwagę na <password/> - w przypadku "normalnej" autoryzacji było by tutaj również <digest/>) - Konnekt - niestety - odpowiada:CODE<iq id='j5' type='set'><query xmlns='jabber:iq:auth'><username>hornet</username><resource>Konnekt</resource><digest>335e22eff9a1a95275c1fa2</digest></query></iq>
podając <digest>, a przecież serwer wyraźnie prosił o <password>. Odpowiedź powinna zawierać:CODE<username>hornet</username><password>MojeSuperHaslo</password>
pozdrawiam
Hornet