ForcePilot/backend/package/yuxi/channels/adapters/masking_adapter.py
Kris 00092c818e chore: 批量代码优化与规范完善
本次提交包含多项代码优化与规范修正:
1. 文档与注释优化:修正注释术语、补充注解与FR编号
2. 代码格式调整:统一空格、换行与缩进规范
3. 类型与接口完善:补充__all__导出、修正返回类型注解
4. 错误处理增强:新增领域错误类与校验逻辑
5. 依赖与导入调整:修复路径引用、统一时区导入
6. 协议与契约更新:完善接口文档与一致性注解
2026-07-03 19:18:13 +08:00

38 lines
1.3 KiB
Python

"""脱敏被驱动适配器。
委托 ``yuxi.utils.crypto`` 的 ``CryptoHelper`` 实现脱敏,是 channels 模块
唯一调用 ``yuxi.utils.crypto`` 脱敏 API 的位置(加解密仍由 ``mappers.py``
调用)。字段关键词表与匹配规则由工具层统一维护(单一事实源),本适配器
不承载任何脱敏算法或字段定义。
无状态适配器,跨请求复用,构造时不依赖任何请求级资源。
"""
from __future__ import annotations
from typing import Any
from yuxi.channels.contract.ports.driven.masking_port import MaskingPort
from yuxi.utils.crypto import get_crypto_helper
__all__ = ["MaskingAdapter"]
class MaskingAdapter(MaskingPort):
"""脱敏被驱动适配器,委托 ``CryptoHelper`` 实现 ``MaskingPort``。"""
def __init__(self) -> None:
self._helper = get_crypto_helper()
def maskFull(self, value: Any) -> Any:
"""全量遮蔽脱敏(对外 HTTP 响应、审计日志)。"""
return self._helper.mask_full(value)
def maskPartial(self, value: Any) -> Any:
"""部分遮蔽脱敏(日志、诊断包)。"""
return self._helper.mask_partial(value)
def isSensitiveKey(self, key: str) -> bool:
"""判断字段名是否属于敏感字段。"""
return self._helper.is_sensitive_key(key)