|
@@ -6,7 +6,9 @@ from tornado.web import RequestHandler
|
|
from model.log import logger
|
|
from model.log import logger
|
|
from model.common import errors
|
|
from model.common import errors
|
|
import time
|
|
import time
|
|
|
|
+import base64
|
|
import pandas as pd
|
|
import pandas as pd
|
|
|
|
+from config.config import auth,port
|
|
log = logger()
|
|
log = logger()
|
|
from model.DateUtils import DateUtils
|
|
from model.DateUtils import DateUtils
|
|
|
|
|
|
@@ -16,7 +18,9 @@ class BaseHandler(RequestHandler,DateUtils):
|
|
self._status_code = 200
|
|
self._status_code = 200
|
|
self.executor = ThreadPoolExecutor(200)
|
|
self.executor = ThreadPoolExecutor(200)
|
|
self.set_default_headers()
|
|
self.set_default_headers()
|
|
-
|
|
|
|
|
|
+ self._au = True
|
|
|
|
+ if auth:
|
|
|
|
+ self._au = self._auth()
|
|
|
|
|
|
def options(self):
|
|
def options(self):
|
|
# 返回方法1
|
|
# 返回方法1
|
|
@@ -40,6 +44,9 @@ class BaseHandler(RequestHandler,DateUtils):
|
|
def write_json(self, data, status_code=200, msg='success',total=1,total_data={}):
|
|
def write_json(self, data, status_code=200, msg='success',total=1,total_data={}):
|
|
self.write(json.dumps({'status': {'msg': msg, "RetCode": status_code},'total':total,'data': data,"total_data":total_data}))
|
|
self.write(json.dumps({'status': {'msg': msg, "RetCode": status_code},'total':total,'data': data,"total_data":total_data}))
|
|
|
|
|
|
|
|
+ def write_fail(self,code=400,msg='error'):
|
|
|
|
+ self.write(json.dumps({'status': {'msg': msg, "RetCode": code}}))
|
|
|
|
+
|
|
def write_download(self, filename, data):
|
|
def write_download(self, filename, data):
|
|
self.set_header('Content-Type', 'application/octet-stream')
|
|
self.set_header('Content-Type', 'application/octet-stream')
|
|
self.set_header('Content-Disposition', f'attachment; filename={filename}.csv')
|
|
self.set_header('Content-Disposition', f'attachment; filename={filename}.csv')
|
|
@@ -54,7 +61,7 @@ class BaseHandler(RequestHandler,DateUtils):
|
|
def get_args(self):
|
|
def get_args(self):
|
|
di=json.loads(self.request.body.decode(encoding='utf-8'))
|
|
di=json.loads(self.request.body.decode(encoding='utf-8'))
|
|
if isinstance(di,str):
|
|
if isinstance(di,str):
|
|
- di=json.loads(di)
|
|
|
|
|
|
+ di = json.loads(di)
|
|
return di
|
|
return di
|
|
|
|
|
|
def write_error(self, status_code, msg=None, **kwargs):
|
|
def write_error(self, status_code, msg=None, **kwargs):
|
|
@@ -92,5 +99,25 @@ class BaseHandler(RequestHandler,DateUtils):
|
|
# return True if ur.r.get(key) else False
|
|
# return True if ur.r.get(key) else False
|
|
return True
|
|
return True
|
|
|
|
|
|
|
|
+ def _auth(self):
|
|
|
|
+ # 不需要验证的请求
|
|
|
|
+ authless = ['/api/get_yangguang_data', '/api/git_hook/data_center', '/api/git_hook/qc_web']
|
|
|
|
+ url = self.request.full_url().split(str(port)+'/')[1]
|
|
|
|
+ if url in authless:
|
|
|
|
+ return True
|
|
|
|
+ else:
|
|
|
|
+ Authorization = self.request.headers.get('Authorization')
|
|
|
|
+ b = str(float(str(base64.b64decode(Authorization[::-1].encode('utf-8')),'utf-8'))*int(self.now.day))[:10]
|
|
|
|
+ diff =int(time.mktime(time.localtime()))-int(b)
|
|
|
|
+ print(diff)
|
|
|
|
+ if diff < 60:
|
|
|
|
+ return True
|
|
|
|
+ else:
|
|
|
|
+ return False
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
|
|
|