This commit is contained in:
Marsway 2026-01-05 17:13:23 +08:00
parent e55619b632
commit 516177e426
4 changed files with 19 additions and 2 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.db
*.log
pgdata/

View File

@ -50,7 +50,7 @@ ConnectHub 是一个轻量级企业集成中间件:统一管理多系统集成
- `DATA_DIR=/data`:容器内数据目录
- `DB_URL=postgresql+psycopg://connecthub:connecthub_pwd_change_me@postgres:5432/connecthub`PostgreSQL 连接串(容器内通过 service name `postgres` 访问)
- `REDIS_URL=redis://redis:6379/0`Celery Broker/Backend
- `FERNET_KEY_PATH=/data/fernet.key`Fernet key 文件(自动生成并持久化)
- `FERNET_KEY_PATH=/data/fernet.key`Fernet key 文件(自动生成并持久化**正式环境必须保留同一个 key否则历史 secret_cfg 将无法解密**
- `LOG_DIR=/data/logs`:日志目录(可选)
### 核心框架实现要点

View File

@ -54,6 +54,20 @@ def encrypt_json(obj: dict[str, Any]) -> str:
def decrypt_json(token: str) -> dict[str, Any]:
if not token:
return {}
token = token.strip()
# 兼容:历史/手工输入导致误存明文 JSON
if token.startswith("{"):
try:
obj = json.loads(token)
if isinstance(obj, dict):
return obj
except Exception:
pass
# 兼容:末尾 padding '=' 被裁剪导致 base64 解码失败len % 4 != 0
if token and (len(token) % 4) != 0:
token = token + ("=" * (-len(token) % 4))
try:
raw = _fernet().decrypt(token.encode("utf-8"))
except InvalidToken as e:

View File

@ -19,7 +19,7 @@ def _mask_token(token: str) -> str:
class SyncOAToDidiTokenJob(BaseJob):
"""
示例 Job演示致远 OA token 获取与日志记录不做任何业务同步
示例 Job演示致远 OA token 获取与日志记录
public_cfg:
- base_url: "https://oa.example.com"