def papAuth(): try: cli = PortalClient(secret=secret, syslog=self.syslog) # req auth ra_req = self.vendor.Portal.newReqAuth( userIp, username, password, 0, None, secret, ac_addr[0], chap=False ) ra_resp = yield cli.sendto(ra_req, ac_addr) if ra_resp.errCode > 0: if ra_resp.errCode == 2: self.redirect(firsturl) return _err_msg = "{0},{1}".format(self.vendor.AckAuthErrs[ra_resp.errCode], ra_resp.get_text_info()[0] or "") raise PortalError(_err_msg) # aff_ack aa_req = self.vendor.Portal.newAffAckAuth(userIp, secret, ac_addr[0], ra_req.serialNo, 0, chap=False) yield cli.sendto(aa_req, ac_addr, recv=False) self.syslog.info('Portal [username:%s] pap auth success' % _username) if self.settings.debug: self.syslog.debug('Portal [username:%s] pap auth login [cast:%s ms]' % ( _username, (time.time() - start_time) * 1000)) self.redirect(firsturl) except Exception as err: try: self.syslog.error("portal [username:%s] pap auth catch exception,%s" % ( _username, utils.safestr(err.message))) back_login(msg=u"portal pap auth error,%s" % utils.safestr(err.message)) except: back_login(msg=u"portal pap auth error,server process error") import traceback traceback.print_exc() finally: cli.close()
def chapAuth(): try: cli = PortalClient(secret=secret, syslog=self.syslog) rc_req = self.vendor.Portal.newReqChallenge(userIp,secret, chap=is_chap) rc_resp = yield cli.sendto(rc_req,ac_addr) if rc_resp.errCode > 0: if rc_resp.errCode == 2: self.redirect(firsturl) return raise PortalError(self.vendor.AckChallengeErrs[rc_resp.errCode]) # req auth ra_req = self.vendor.Portal.newReqAuth( userIp, username, password, rc_resp.reqId, rc_resp.get_challenge(), secret, ac_addr[0], serialNo=rc_req.serialNo, chap=is_chap, ) ra_resp = yield cli.sendto(ra_req,ac_addr) if ra_resp.errCode > 0: if ra_resp.errCode == 2: self.redirect(firsturl) return _err_msg = "{0},{1}".format(self.vendor.AckAuthErrs[ra_resp.errCode], ra_resp.get_text_info()[0] or "") raise PortalError(_err_msg) # aff_ack aa_req = self.vendor.Portal.newAffAckAuth(userIp,secret,ac_addr[0],ra_req.serialNo,rc_resp.reqId, chap=is_chap) yield cli.sendto(aa_req,ac_addr,recv=False) self.syslog.info('Portal [username:{0}] chap auth success'.format(_username)) if self.settings.debug: self.syslog.debug('Portal [username:%s] chap auth login [cast:%s ms]' % ( _username, (time.time() - start_time) * 1000)) self.redirect(firsturl) except Exception as err: try: self.syslog.exception("Portal [username:%s] chap auth catch exception, %s" % ( _username, utils.safestr(err.message))) back_login(msg=u"Portal chap auth error,%s" % err.message) except: back_login(msg=u"Portal chap auth error,server process error") finally: cli.close()