mirror of
https://gitee.com/pnoker/iot-dc3.git
synced 2026-09-01 15:33:10 +08:00
0d8390db51
D-1's fail-closed TenantLineHandler rejects unscoped queries, but gRPC server threads bypass BaseController.async so no tenant was ever bound — every query against a tenant-scoped table silently failed. - proto: add tenant_id to manager/driver single & batch query messages - facade: drop single-param abstract + default matchesTenant filter, promote the tenantId-bearing overload (all callers already pass it) - GrpcFacade/LocalFacade: carry tenant into request / onto ThreadLocal - 9 manager+driver servers (27 RPCs): setTenantId + finally clear - data servers: setTenantId on tenant-bearing RPCs; runIgnore for getByRecordId (record_id globally unique, no tenant in payload) - TokenServer.checkValid: runIgnore (dc3_tenant_membership, pre-login) - driver clients (Device/Driver/Point): set tenant on getById queries - alarm: drop tenant reverse-resolve (D-1 leftover the fail-closed interceptor forbids); tenant now required from upstream, else drop - add TenantLineInterceptorIntegrationTest (H2) covering scoped filter, fail-closed, and runIgnore through the real MyBatis-Plus pipeline