update
This commit is contained in:
parent
e55619b632
commit
516177e426
|
|
@ -0,0 +1,3 @@
|
||||||
|
*.db
|
||||||
|
*.log
|
||||||
|
pgdata/
|
||||||
|
|
@ -50,7 +50,7 @@ ConnectHub 是一个轻量级企业集成中间件:统一管理多系统集成
|
||||||
- `DATA_DIR=/data`:容器内数据目录
|
- `DATA_DIR=/data`:容器内数据目录
|
||||||
- `DB_URL=postgresql+psycopg://connecthub:connecthub_pwd_change_me@postgres:5432/connecthub`:PostgreSQL 连接串(容器内通过 service name `postgres` 访问)
|
- `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
|
- `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`:日志目录(可选)
|
- `LOG_DIR=/data/logs`:日志目录(可选)
|
||||||
|
|
||||||
### 核心框架实现要点
|
### 核心框架实现要点
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,20 @@ def encrypt_json(obj: dict[str, Any]) -> str:
|
||||||
def decrypt_json(token: str) -> dict[str, Any]:
|
def decrypt_json(token: str) -> dict[str, Any]:
|
||||||
if not token:
|
if not token:
|
||||||
return {}
|
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:
|
try:
|
||||||
raw = _fernet().decrypt(token.encode("utf-8"))
|
raw = _fernet().decrypt(token.encode("utf-8"))
|
||||||
except InvalidToken as e:
|
except InvalidToken as e:
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ def _mask_token(token: str) -> str:
|
||||||
|
|
||||||
class SyncOAToDidiTokenJob(BaseJob):
|
class SyncOAToDidiTokenJob(BaseJob):
|
||||||
"""
|
"""
|
||||||
示例 Job:演示致远 OA 的 token 获取与日志记录(不做任何业务同步)。
|
示例 Job:演示致远 OA 的 token 获取与日志记录
|
||||||
|
|
||||||
public_cfg:
|
public_cfg:
|
||||||
- base_url: "https://oa.example.com"
|
- base_url: "https://oa.example.com"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue