return retval def _on_method_call(ctx): if ctx.in_object is None: raise ArgumentError("RequestHeader is null") if not (ctx.in_header.user_name, ctx.in_header.session_id) in session_db: raise AuthenticationError(ctx.in_object.user_name) UserService.event_manager.add_listener('method_call', _on_method_call) if __name__ == '__main__': from spyne.util.wsgi_wrapper import run_twisted logging.basicConfig(level=logging.DEBUG) logging.getLogger('spyne.protocol.xml').setLevel(logging.DEBUG) logging.getLogger('twisted').setLevel(logging.DEBUG) application = Application([AuthenticationService, UserService], tns='spyne.examples.authentication', in_protocol=Soap11(validator='lxml'), out_protocol=Soap11() ) twisted_apps = [ (WsgiApplication(application), 'app'), ] sys.exit(run_twisted(twisted_apps, 8000))
def say_hello(name, times): '''Docstrings for service methods appear as documentation in the wsdl. @param name the name to say hello to @param the number of times to say hello @return the completed array ''' results = [] for i in range(0, times): results.append('Hello, %s' % name) return results if __name__=='__main__': logging.basicConfig(level=logging.DEBUG) logging.getLogger('spyne.protocol.xml').setLevel(logging.DEBUG) application = Application([HelloWorldService], 'spyne.examples.hello.twisted', interface=Wsdl11(), in_protocol=Soap11(), out_protocol=Soap11()) application.interface.nsmap[None] = application.interface.nsmap['tns'] application.interface.prefmap[application.interface.nsmap['tns']] = None del application.interface.nsmap['tns'] wsgi_app = WsgiApplication(application) logging.info('listening on 0.0.0.0:7789') logging.info('wsdl is at: http://0.0.0.0:7789/app/?wsdl') run_twisted(((wsgi_app, "app"),), 7789)
if "session-id" not in cookie: raise UnauthenticatedError() session_cookie = cookie["session-id"].value session_id = tuple(base64.urlsafe_b64decode(session_cookie).split("\0", 1)) if not session_id in session_db: raise AuthenticationError(session_id[0]) ctx.udc = session_id[0] # user name UserService.event_manager.add_listener('method_call', _on_method_call) if __name__=='__main__': from spyne.util.wsgi_wrapper import run_twisted logging.basicConfig(level=logging.DEBUG) logging.getLogger('spyne.protocol.xml').setLevel(logging.DEBUG) logging.getLogger('twisted').setLevel(logging.DEBUG) application = Application([UserService], tns='spyne.examples.authentication', interface=Wsdl11(), in_protocol=Soap11(validator='lxml'), out_protocol=Soap11() ) twisted_apps = [ (WsgiApplication(application), 'app'), ] sys.exit(run_twisted(twisted_apps, 7789))
return retval def _on_method_call(ctx): if ctx.in_object is None: raise ArgumentError("RequestHeader is null") if not (ctx.in_header.user_name, ctx.in_header.session_id) in session_db: raise AuthenticationError(ctx.in_object.user_name) UserService.event_manager.add_listener('method_call', _on_method_call) if __name__=='__main__': from spyne.util.wsgi_wrapper import run_twisted logging.basicConfig(level=logging.DEBUG) logging.getLogger('spyne.protocol.xml').setLevel(logging.DEBUG) logging.getLogger('twisted').setLevel(logging.DEBUG) application = Application([AuthenticationService,UserService], tns='spyne.examples.authentication', in_protocol=Soap11(validator='lxml'), out_protocol=Soap11() ) twisted_apps = [ (WsgiApplication(application), 'app'), ] sys.exit(run_twisted(twisted_apps, 7789))