mirror of
https://gitee.com/pnoker/iot-dc3.git
synced 2026-11-01 18:51:53 +08:00
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
130 lines
4.3 KiB
XML
130 lines
4.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!--
|
|
~ Copyright 2016-present the IoT DC3 original author or authors.
|
|
~
|
|
~ This program is free software: you can redistribute it and/or modify
|
|
~ it under the terms of the GNU Affero General Public License as
|
|
~ published by the Free Software Foundation, either version 3 of the
|
|
~ License, or (at your option) any later version.
|
|
~
|
|
~ This program is distributed in the hope that it will be useful,
|
|
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
~ GNU Affero General Public License for more details.
|
|
~
|
|
~ You should have received a copy of the GNU Affero General Public License
|
|
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
-->
|
|
|
|
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common</artifactId>
|
|
<version>2026.5.22</version>
|
|
</parent>
|
|
|
|
<name>${project.artifactId}</name>
|
|
<artifactId>dc3-common-postgres</artifactId>
|
|
<version>2026.5.22</version>
|
|
<packaging>jar</packaging>
|
|
|
|
<inceptionYear>2016</inceptionYear>
|
|
<url>https://github.com/pnoker/iot-dc3</url>
|
|
<description>
|
|
The common PostgreSQL configuration of the IoT DC3 platform.
|
|
</description>
|
|
|
|
<developers>
|
|
<developer>
|
|
<id>pnoker</id>
|
|
<name>pnoker</name>
|
|
<email>pnokers@icloud.com</email>
|
|
<roles>
|
|
<role>PMC</role>
|
|
</roles>
|
|
<organization>pnoker.github.io</organization>
|
|
<url>https://github.com/pnoker/iot-dc3</url>
|
|
</developer>
|
|
</developers>
|
|
|
|
<licenses>
|
|
<license>
|
|
<name>GNU Affero General Public License v3.0</name>
|
|
<url>https://www.gnu.org/licenses/agpl-3.0.txt</url>
|
|
<distribution>repo</distribution>
|
|
</license>
|
|
</licenses>
|
|
|
|
<scm>
|
|
<url>https://github.com/pnoker/iot-dc3</url>
|
|
<connection>scm:git:https://github.com/pnoker/iot-dc3.git</connection>
|
|
<developerConnection>scm:git:https://github.com/pnoker/iot-dc3.git</developerConnection>
|
|
</scm>
|
|
|
|
<dependencies>
|
|
|
|
<!-- Spring Boot Related -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-jdbc</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Data Access Related -->
|
|
<dependency>
|
|
<groupId>org.postgresql</groupId>
|
|
<artifactId>postgresql</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.baomidou</groupId>
|
|
<artifactId>dynamic-datasource-spring-boot4-starter</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.baomidou</groupId>
|
|
<artifactId>mybatis-plus-generator</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.baomidou</groupId>
|
|
<artifactId>mybatis-plus-jsqlparser</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.baomidou</groupId>
|
|
<artifactId>mybatis-plus-spring-boot4-starter</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Utility Libraries -->
|
|
<dependency>
|
|
<groupId>org.freemarker</groupId>
|
|
<artifactId>freemarker</artifactId>
|
|
</dependency>
|
|
|
|
<!-- DC3 Common Related -->
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-constant</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.github.pnoker</groupId>
|
|
<artifactId>dc3-common-exception</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Unit test toolkit -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.h2database</groupId>
|
|
<artifactId>h2</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
</dependencies>
|
|
|
|
</project>
|