def parse_request(self): try: return apiutils.parse_request(self.settings.config.system.secret, self.request.body) except Exception as err: logger.error(u"api authorize parse error, %s" % utils.safeunicode(traceback.format_exc())) raise ValueError(u"Error: %s" % utils.safeunicode(err.message))
def process(self, msgid, message): self.syslog.info("accept acct message @ %s : %r" % (self.listen, utils.safeunicode(message))) try: req_msg = apiutils.parse_request(self.secret, message) if req_msg.get("action") == 'ping': return self.agent.reply(msgid, apiutils.make_message(self.secret,code=0)) except Exception as err: resp = apiutils.make_message(self.secret, code=1, msg=utils.safestr(err.message)) self.agent.reply(msgid, resp) return
def process(self, msgid, message): self.syslog.info("accept auth message @ %s : %r" % (self.listen, utils.safeunicode(message))) @self.cache.cache(expire=600) def get_account_by_username(username): return self.db.query(models.TrAccount).filter_by(account_number=username).first() @self.cache.cache(expire=600) def get_product_by_id(product_id): return self.db.query(models.TrProduct).filter_by(id=product_id).first() try: req_msg = apiutils.parse_request(self.secret, message) if req_msg.get("action") == 'ping': return self.agent.reply(msgid, apiutils.make_message(self.secret,code=0)) if 'username' not in req_msg: raise ValueError('username is empty') except Exception as err: resp = apiutils.make_message(self.secret, code=1, msg=utils.safestr(err.message)) self.agent.reply(msgid, resp) return try: username = req_msg['username'] account = get_account_by_username(username) if not account: apiutils.make_message(self.secret, code=1, msg=u'user {0} not exists'.format(utils.safeunicode(username))) self.agent.reply(msgid, resp) return passwd = self.app.aes.decrypt(account.password) product = get_product_by_id(account.product_id) result = dict( code=0, msg='success', username=username, passwd=passwd, input_rate=product.input_max_limit, output_rate=product.output_max_limit, attrs={ "Session-Timeout" : 86400, "Acct-Interim-Interval": 300 } ) resp = apiutils.make_message(self.secret, **result) self.agent.reply(msgid, resp) self.syslog.info("send auth response %r" % (utils.safeunicode(resp))) except Exception as err: self.syslog.error(u"api authorize error %s" % utils.safeunicode(err.message)) resp = apiutils.make_message(self.secret, code=1, msg=utils.safestr(err.message)) return self.agent.reply(msgid, resp)
def process(self, msgid, message): self.syslog.info("accept acct message @ %s : %r" % (self.listen, utils.safeunicode(message))) try: req_msg = apiutils.parse_request(self.secret, message) if req_msg.get("action") == 'ping': return self.agent.reply( msgid, apiutils.make_message(self.secret, code=0)) except Exception as err: resp = apiutils.make_message(self.secret, code=1, msg=utils.safestr(err.message)) self.agent.reply(msgid, resp) return
def parse_request(self): try: return apiutils.parse_request(self.settings.config.system.secret, self.request.body) except Exception as err: self.syslog.error(u"api authorize parse error, %s" % utils.safeunicode(traceback.format_exc())) raise ValueError(u"parse params error")
def parse_request(self): return apiutils.parse_request(self.settings.config.system.secret,self.request.body)
def process(self, msgid, message): self.syslog.info("accept auth message @ %s : %r" % (self.listen, utils.safeunicode(message))) @self.cache.cache(expire=600) def get_account_by_username(username): return self.db.query( models.TrAccount).filter_by(account_number=username).first() @self.cache.cache(expire=600) def get_product_by_id(product_id): return self.db.query( models.TrProduct).filter_by(id=product_id).first() try: req_msg = apiutils.parse_request(self.secret, message) if req_msg.get("action") == 'ping': return self.agent.reply( msgid, apiutils.make_message(self.secret, code=0)) if 'username' not in req_msg: raise ValueError('username is empty') except Exception as err: resp = apiutils.make_message(self.secret, code=1, msg=utils.safestr(err.message)) self.agent.reply(msgid, resp) return try: username = req_msg['username'] account = get_account_by_username(username) if not account: apiutils.make_message(self.secret, code=1, msg=u'user {0} not exists'.format( utils.safeunicode(username))) self.agent.reply(msgid, resp) return passwd = self.app.aes.decrypt(account.password) product = get_product_by_id(account.product_id) result = dict(code=0, msg='success', username=username, passwd=passwd, input_rate=product.input_max_limit, output_rate=product.output_max_limit, attrs={ "Session-Timeout": 86400, "Acct-Interim-Interval": 300 }) resp = apiutils.make_message(self.secret, **result) self.agent.reply(msgid, resp) self.syslog.info("send auth response %r" % (utils.safeunicode(resp))) except Exception as err: self.syslog.error(u"api authorize error %s" % utils.safeunicode(err.message)) resp = apiutils.make_message(self.secret, code=1, msg=utils.safestr(err.message)) return self.agent.reply(msgid, resp)
def parse_form_request(self): try: return apiutils.parse_request(self.settings.config.system.secret, self.get_params()) except Exception as err: logger.error(u"api authorize parse error, %s" % utils.safeunicode(traceback.format_exc())) raise ValueError(u"parse params error")
def parse_request(self): return apiutils.parse_request(self.settings.config.system.secret, self.request.body)