diff -r 4cf5e664c847 -r 3406d3bf05d4 iro/xmlrpc/SecureUserdbXMLRPCServer.py --- 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