SuperAPI AI 工具集

ddd4j-cloud-tenant

安全与审计

查看项目

更新于 10-16 08:47

技能介绍

用途:在 ddd4j-cloud 服务中实现或审查租户与系统隔离,统一处理 Tenant 注解、TenantContextHolder、系统隔离、数据范围、SQL 过滤与跨服务传播。

主要能力:在请求入口装配 Tenant 注解与 TenantContextHolder;应用数据范围与租户 SQL 过滤并判定豁免表;编写或审计系统与后台操作的租户忽略规则;在异步、Reactor、Feign 及跨服务调用中传播租户 id;定义后台与跨服务工作的系统上下文语义;诊断跨租户数据泄漏或读到其他租户行的问题。

使用方式:先运行 ddd4j-cloud-version-selection 固定组合,再在确认的分支与 SHA 上定位 data tenant、MyBatis、Feign 租户模块;梳理租户 id 入口(请求头、token)到 TenantContextHolder 的路径、忽略规则位置与 SQL 过滤范围;验证同步、异步、Reactor、Feign 传播及系统上下文语义;针对真实存储运行隔离测试;输出隔离映射(入口→holder→过滤→传播)、忽略规则清单、测试证据与违规修复建议。安装示例:npx skills add full-stack-skills/ddd4j-skills --skill ddd4j-cloud-context。

适用场景:租户隔离实现选型、上下游版本与跨服务边界、八条维护线差异。

限制:非租户请求上下文用 ddd4j-cloud-context;Contexts/Subject/ThreadContext SPI 用 ddd4j-core;Feign 拦截器装配用 ddd4j-cloud-feign;数据源、MyBatis/JPA 或事务策略用 ddd4j-cloud-data;纯 Spring Boot 无 Cloud 模块用 ddd4j-boot-data;非 ddd4j 的通用多租户 SaaS 设计不适用。注意:忽略规则过宽会静默泄漏跨租户读取;TenantContextHolder 为线程绑定,异步、Reactor、Feign 跳转需显式传播;绕过仓储的访问路径会跳过 SQL 过滤;豁免表清单易随 schema 迁移漂移;请求头租户 id 须与 Subject/token 校验;模拟 holder 的测试仅证明装配形态,跨租户阻断须对真实数据库验证。输入缺失时输出 missing 提示。本技能不访问、不收集、不存储、不传输任何用户数据、凭据或密钥。