Esempio n. 1
0
 def handle_register(self, register):
     self.registered_usernames_lock.acquire()
     if register.username not in self.registered_usernames:
         self.registered_usernames.add(register.username)
         user_id = self.client_id
         self.registered_usernames_lock.release()
         if self.encryption:
             register.symmetric_key = RSA._rsa_decrypt_and_decode(self.rsa_key, 
                                                       register.symmetric_key)
         self.clients_lock.acquire()
         self.clients[user_id] = register
         self.client_id += 1  
         self.clients_lock.release()
         self.__ontology_manager.add_individual('User', register.username)
         self.__ontology_manager.save()
         self.logger.debug('Username %s registered and assigned ID %d' \
                           % (register.username, user_id))
         if self.encryption:
             self.clients_lock.acquire()
             ret = RSA.rsa_encrypt_client(self.clients[user_id], 
                                           Serialization.serialize_registeruserresponse(user_id))
             self.clients_lock.release()
             return ret
         return base64.b64encode(Serialization.serialize_registeruserresponse(user_id))
     self.logger.error('Username %s already registered' % register.username)
     return