I am trying to build an XMLRPC server that utilizes sessions to keep track of authenticated users. However, I have not been able to find too much on session management and the only way I have figured out how to get at the site from within the XMLRPC server is by overriding the render method. Is this the proper way? Are there other ways to do it? I am currently thinking about adding a mechanism to store the uid and time in a db. Any help would be great! Rob class Handler(xmlrpc.XMLRPC): def __init__(self, cmd_schema, cmd_xml): log.msg("Using %s and %s to configure api" % (cmd_schema, cmd_xml)) self.api = API(cmd_schema, cmd_xml) log.msg("Preparing authentication mechanism") self.creds = Creds() log.msg("Preparing role mechanism") self.roles = Roles() def render(self, request): s = request.site.makeSession() print s.uid return xmlrpc.XMLRPC.render(self, request) def xmlrpc_login(self, user, password): return self.creds.authenticate(user, password).addErrback( self.handleError) if __name__ == "__main__": import sys from twisted.internet import reactor from twisted.python import log log.startLogging(sys.stdout) site = server.Site(Handler('conf/api.xsd', 'conf/api.xml')) reactor.listenSSL(8000, site, ServerContextFactory('etc/host.pem', 'etc/host.pem')) reactor.run()
participants (1)
-
Rob McMillen