--- a/iro/xmlrpc/SecureUserdbXMLRPCServer.py Wed Mar 21 19:41:55 2012 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-from SecureAuthentificateXMLRPCServer import SecureAuthentificateXMLRPCRequestHandler
-from SecureXMLRPCServer import SecureXMLRPCServer
-import os, hashlib
-
-class UserDB:
- '''
- class for managing all xmlrpc users
- - each user is indyfied via a hash value, which is created out of the username + password
- '''
- def __init__(self,userClass, userlist,jobqueue):
- self.salt=os.urandom(20)
- self.jobqueue=jobqueue
- self.userClass=userClass
- self.userlist={}
- for user in userlist:
- self.createUser(user)
-
- def createHash(self,user):
- """
- returns a hash out of username and the password and self.salt
- user is a directory with two keys: username and password
- """
- m=hashlib.sha512()
- m.update(user["name"])
- m.update(self.salt)
- m.update(user["password"])
- return m.hexdigest()
-
- def createUser(self,user):
- self.userlist[self.createHash(user)]=self.userClass(user["name"],self.jobqueue)
-
- def __getitem__(self,key):
- return self.userlist[key]
-
-
-class SecureAuthentificateXMLRPCRequestHandler2(SecureAuthentificateXMLRPCRequestHandler):
- def testUser(self,username,password):
- """
- Function for testing authentification
- """
- return self.server.activateUser(username,password)
-
-class SecureUserDBXMLRPCServer(SecureXMLRPCServer):
- def __init__(self, addr, userdb,
- requestHandler=SecureAuthentificateXMLRPCRequestHandler2,
- certificate="server.cert", privatekey="server.pem",
- logRequests=1):
- SecureXMLRPCServer.__init__(self, addr, requestHandler, certificate, privatekey, logRequests)
- self.relam="xmlrpc"
- self.userdb=userdb
-
- def activateUser(self,username,password):
- """
- Function is executed, if someone ant to login
- -searches for a regular user in the userdb and then put all methods of the user as XMLRPC
- returns weather a user was found or not
- """
- try:
- user = self.userdb[self.userdb.createHash({"name":username,"password":password})]
- self.register_instance(user)
- return True
- except KeyError:
- return False