刘光辉
15 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package jnpf.audit;
 
/**
 * audit-api 模块常量:跨服务共享的 MDC key 等。Task 7 SDK 写入/读取时引用同一常量,
 * 避免调用方与 SDK 各自硬编码字符串导致漂移。
 */
public final class AuditApiConsts {
    /** MDC key:请求级 operationId,用于把同一次操作触发的多条审计事件关联起来。 */
    public static final String MDC_OPERATION_ID = "audit.operationId";
 
    /** 自定义业务请求携带的签名凭证,仅用于关联同一次前端操作产生的审计事件。 */
    public static final String HEADER_BIZ_SIGN = "X-Audit-Biz-Sign";
 
    /**
     * 租户哨兵值:采集侧取不到租户时的缺省值(单租户部署 / 无会话的系统链路)。
     *
     * <p>取 {@code "0"} 的依据:本平台单租户部署下 {@code base_user.f_tenant_id} 即为 {@code "0"},
     * 而登录会话的 {@code UserProvider.getUser().getTenantId()} 返回**空串**(实测:lims_biz_log 全部
     * 存量行 tenant_id 均为空串)。lims 既有代码(LimsSxtJihuaTaskServiceImpl / LimsSxtKanbanServiceImpl /
     * LimsSxtQushiServiceImpl 等)一律按 {@code !hasText ? "0"} 回落,本常量与之对齐。
     *
     * <p>语义边界:**仅作为空白时的 fallback**,多租户(COLUMN 模式)部署下会话有真实租户号,
     * 不会触发回落;服务端 {@code validate} 的「tenantId 不能为空」保持严格,用于拦住绕过 SDK 的投递
     * (Feign 直调、DLQ/spool 人工补录)。
     */
    public static final String DEFAULT_TENANT_ID = "0";
 
    private AuditApiConsts() {
    }
}