functions = { 'add': lambda a, b: a + b, 'subtract': lambda a, b: a - b, 'multiply': lambda a, b: a * b, 'divide': lambda a, b: a / b, 'square': lambda a: a * a, 'squareRoot': lambda a: math.sqrt(a), 'sum': lambda a: sum(a), 'average': lambda a: sum(a) / len(a), } xmlrpc_handler = XMLRPCHandler('xml-rpc') xmlrpc_handler.connect(app, '/xml-rpc') for name, func in functions.iteritems(): xmlrpc_handler.register(func, name) class JSONRPCHandler(simplejsonrpc.JsonrpcHandler): def dispatch(self, method_name): return functions.get(method_name, None); @app.route("/json-rpc", methods=['GET', 'POST', 'OPTIONS']) def jsonrpc(): result = '' if request.headers["CONTENT_LENGTH"]: handler = JSONRPCHandler() result = handler.handle(request.data) response = make_response(result, 200) # add CORS headers hdr = 'Access-Control-Allow-%s' response.headers[hdr % 'Origin'] = '*' response.headers[hdr % 'Headers'] = "Content-Type, Authentication"
ticket = binascii.a2b_base64(ticket) if ticket is None: return False cip = str(request.remote_addr) if isinstance(TICKET, SignedTicket): data = ticket else: data = ticket, cip ticket_data = TICKET.validateTkt(data) validuntil = int(time.time()) + TIMEOUT ticket = TICKET.createTkt(ticket_data[0], ticket_data[1], ticket_data[2], cip=cip, validuntil=validuntil) ticket_b64 = base64.b64encode(ticket) return ticket_b64 return False except Exception, e: return False ############################################################################ # register xmlrpc callback handler.register(rpc_validate_tkt, "validate_tkt") handler.register(rpc_login, "rpc_login") handler.register(rpc_refresh_tkt, "refresh_tkt") ############################################################################ if __name__ == "__main__": app.run(port=6623, host='0.0.0.0', debug=True) #pass