Compare commits

...

2 Commits
v2.6.2 ... v2.6

Author SHA1 Message Date
Bai
e9652d56ff fix: 修改获取org时,thread_local缓存问题 2021-03-01 17:55:44 +08:00
fit2bot
97262645be fix: 修复 celery 等日志文件的访问漏洞 (#5474)
Co-authored-by: xinwen <coderWen@126.com>
2021-01-19 14:36:35 +08:00
3 changed files with 19 additions and 4 deletions

View File

@@ -2,6 +2,7 @@
#
import json
import os
import uuid
import redis_lock
import redis
@@ -103,6 +104,10 @@ def get_celery_periodic_task(task_name):
def get_celery_task_log_path(task_id):
task_id = str(task_id)
try:
uuid.UUID(task_id)
except:
return
rel_path = os.path.join(task_id[0], task_id[1], task_id + '.log')
path = os.path.join(settings.CELERY_LOG_DIR, rel_path)
os.makedirs(os.path.dirname(path), exist_ok=True)

View File

@@ -16,7 +16,7 @@ class CeleryLogWebsocket(JsonWebsocketConsumer):
def connect(self):
user = self.scope["user"]
if user.is_authenticated and user.is_org_admin:
if user.is_authenticated:
self.accept()
else:
self.close()

View File

@@ -84,16 +84,26 @@ def set_org_mapper(org_mapper):
def get_org_mapper():
org_mapper = _find('org_mapper')
if org_mapper is None:
org_mapper = construct_org_mapper()
set_org_mapper(org_mapper)
return org_mapper
def update_org_mapper():
org_mapper = construct_org_mapper()
set_org_mapper(org_mapper)
return org_mapper
def get_org_by_id(org_id):
org_id = str(org_id)
org_mapper = get_org_mapper()
if not org_mapper:
org_mapper = update_org_mapper()
org = org_mapper.get(org_id)
if not org:
# 解决celery缓存org_mapper问题
org_mapper = update_org_mapper()
org = org_mapper.get(org_id)
return org