def POST(self): try: self.request() except web.Unauthorized: data = web.input() imsi = str(data.imsi) params = {'imsi': imsi} params['mac'] = WebCommonBase.compute_mac(params, self.key) #web.log.debug("%s?%s" % ("%s/reauth" % web.fb_config.api_url, "&".join(["%s=%s" % (k,urllib.quote(v)) for k,v in params.items()]))) requests.post("%s/reauth" % web.fb_config.api_url, params, verify=False) # XXX THIS IS INSECURE!!! self.request()
def xmpp_request(self, module, params): try: params['mac'] = WebCommonBase.compute_mac(params, self.key) request_url = "%s/%s" % (self.config.api_url, module) web.log.debug("Making request to %s with args %s" % (request_url, params)) r = requests.post(request_url, data=params, verify=False) # XXX THIS IS INSECURE!!! except Exception as e: web.log.error("FB API server error %s" % e) raise web.InternalError(str(e)) web.log.debug("Response: %s, %d" % (r, r.status_code)) if r.status_code == 401: web.log.debug("FB XMPP server auth error for user") raise web.Unauthorized() elif r.status_code == 500: web.log.error("FB XMPP server internal error %s" % r.text) raise web.InternalError(r.text) elif r.status_code == 400: web.log.error("FB XMPP server bad request error %s" % r.text) raise web.BadRequest() return r
def POST(self): data = web.input() web.log.debug("Incoming XMPP messsage %s" % data) self.verify(data, fields=["sender_id", "sender_name", "body"]) sender_id = str(data.sender_id) sender_name = str(data.sender_name) body = str(data.body) imsi = str(data.imsi) accounts = web.db.select([self.config.t_users, self.config.t_base_stations], \ where="imsi=$imsi " + \ "AND %s.base_station = %s.id" % (self.config.t_users, self.config.t_base_stations), \ vars={"imsi": imsi}) account = accounts[0] if account: web.log.info("Sending incoming message to base station: from=%s, body=%s, to=%s, base_station=%s, url=%s" % \ (sender_id, body, imsi, account.base_station, account.callback_url)) params = {'imsi': account.imsi, 'sender_id': sender_id, 'sender_name': sender_name, 'body': body} params['mac'] = WebCommonBase.compute_mac(params, self.key) r = requests.post(account.callback_url, params, verify=False) # XXX THIS IS INSECURE!!! raise web.Accepted() raise web.Unauthorized()
def _verify_channel(self, data): return WebCommonBase._verify_channel(self, data)