Home | Trees | Indices | Help |
|
---|
|
1 # Distributed under the terms of GPL version 2 or any later 2 # Copyright (C) Alexey Nezhdanov 2004 3 # JEP0078 (Non-SASL authenticaion) for xmppd.py 4 5 # $Id: jep0078.py,v 1.6 2004/10/23 09:22:44 snakeru Exp $ 6 7 from xmpp import * 8 from xmppd import * 9 #from xmppd import SESSION_OPENED 10 import hashlib 1113 NS=NS_AUTH5815 server.Dispatcher.RegisterHandler('iq',self.getAuthInfoHandler,'get',NS_AUTH) 16 server.Dispatcher.RegisterHandler('iq',self.setAuthInfoHandler,'set',NS_AUTH)1719 servername=stanza['to'] 20 if servername and servername not in self._owner.servernames: 21 session.send(Error(stanza,ERR_ITEM_NOT_FOUND)) 22 else: 23 iq=stanza.buildReply('result') 24 iq.T.query.NT.username=stanza.T.query.T.username 25 iq.T.query.NT.password 26 iq.T.query.NT.digest 27 iq.T.query.NT.resource 28 session.send(iq) 29 raise NodeProcessed3032 if not stanza['to']: stanza['to']=session.ourname 33 servername=stanza['to'].getDomain() 34 username=stanza.T.query.T.username.getData().lower() 35 password=self._owner.AUTH.getpassword(username,servername) 36 if password is not None: digest=hashlib.sha1(session.ID+password).hexdigest() 37 try: 38 query_password = stanza.T.query.T.password.getData() 39 except: 40 query_password = None 41 42 if servername not in self._owner.servernames: 43 session.send(Error(stanza,ERR_ITEM_NOT_FOUND)) 44 elif session.ourname==servername \ 45 and password \ 46 and (query_password==password \ 47 or stanza.T.query.T.digest.getData()==digest ) \ 48 and stanza.T.query.T.resource.getData(): 49 session.send(stanza.buildReply('result')) 50 fulljid="%s@%s/%s"%(username,servername,stanza.T.query.T.resource.getData()) 51 session.peer=fulljid 52 s=self._owner.deactivatesession(fulljid) 53 if s: s.terminate_stream(STREAM_CONFLICT) 54 session.set_session_state(SESSION_OPENED) 55 else: 56 session.send(stanza.buildReply('error')) 57 raise NodeProcessed
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Wed Aug 1 18:45:05 2012 | http://epydoc.sourceforge.net |