Commit 4b95146c98aa1dc053f2876a69fa0e9d58df79d2
1 parent
8795a4cd
设置实体继承多租户的 DO
Showing
16 changed files
with
116 additions
and
26 deletions
README.md
| @@ -33,6 +33,7 @@ | @@ -33,6 +33,7 @@ | ||
| 33 | | | 菜单管理 | 配置系统菜单,操作权限,按钮权限标识等 | | 33 | | | 菜单管理 | 配置系统菜单,操作权限,按钮权限标识等 | |
| 34 | | | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 | | 34 | | | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 | |
| 35 | | | 岗位管理 | 配置系统用户所属担任职务 | | 35 | | | 岗位管理 | 配置系统用户所属担任职务 | |
| 36 | +| | 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 | | ||
| 36 | | | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | | 37 | | | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | |
| 37 | | 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、云片等主流短信平台 | | 38 | | 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、云片等主流短信平台 | |
| 38 | | 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 | | 39 | | 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 | |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/dept/SysDeptDO.java
| 1 | package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept; | 1 | package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 4 | +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; |
| 5 | import com.baomidou.mybatisplus.annotation.TableId; | 5 | import com.baomidou.mybatisplus.annotation.TableId; |
| 6 | import com.baomidou.mybatisplus.annotation.TableName; | 6 | import com.baomidou.mybatisplus.annotation.TableName; |
| 7 | import lombok.Data; | 7 | import lombok.Data; |
| @@ -15,7 +15,7 @@ import lombok.EqualsAndHashCode; | @@ -15,7 +15,7 @@ import lombok.EqualsAndHashCode; | ||
| 15 | @TableName("sys_dept") | 15 | @TableName("sys_dept") |
| 16 | @Data | 16 | @Data |
| 17 | @EqualsAndHashCode(callSuper = true) | 17 | @EqualsAndHashCode(callSuper = true) |
| 18 | -public class SysDeptDO extends BaseDO { | 18 | +public class SysDeptDO extends TenantBaseDO { |
| 19 | 19 | ||
| 20 | /** | 20 | /** |
| 21 | * 部门ID | 21 | * 部门ID |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/dept/SysPostDO.java
| 1 | package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept; | 1 | package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 4 | +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; |
| 5 | import com.baomidou.mybatisplus.annotation.TableId; | 5 | import com.baomidou.mybatisplus.annotation.TableId; |
| 6 | import com.baomidou.mybatisplus.annotation.TableName; | 6 | import com.baomidou.mybatisplus.annotation.TableName; |
| 7 | import lombok.Data; | 7 | import lombok.Data; |
| @@ -15,14 +15,13 @@ import lombok.EqualsAndHashCode; | @@ -15,14 +15,13 @@ import lombok.EqualsAndHashCode; | ||
| 15 | @TableName("sys_post") | 15 | @TableName("sys_post") |
| 16 | @Data | 16 | @Data |
| 17 | @EqualsAndHashCode(callSuper = true) | 17 | @EqualsAndHashCode(callSuper = true) |
| 18 | -public class SysPostDO extends BaseDO { | 18 | +public class SysPostDO extends TenantBaseDO { |
| 19 | 19 | ||
| 20 | /** | 20 | /** |
| 21 | * 岗位序号 | 21 | * 岗位序号 |
| 22 | */ | 22 | */ |
| 23 | @TableId | 23 | @TableId |
| 24 | private Long id; | 24 | private Long id; |
| 25 | - | ||
| 26 | /** | 25 | /** |
| 27 | * 岗位名称 | 26 | * 岗位名称 |
| 28 | */ | 27 | */ |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/logger/SysOperateLogDO.java
| @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger; | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger; | ||
| 3 | import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; | 3 | import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 5 | import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum; | 5 | import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum; |
| 6 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 6 | +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; |
| 7 | import com.baomidou.mybatisplus.annotation.TableField; | 7 | import com.baomidou.mybatisplus.annotation.TableField; |
| 8 | import com.baomidou.mybatisplus.annotation.TableId; | 8 | import com.baomidou.mybatisplus.annotation.TableId; |
| 9 | import com.baomidou.mybatisplus.annotation.TableName; | 9 | import com.baomidou.mybatisplus.annotation.TableName; |
| @@ -22,7 +22,7 @@ import java.util.Map; | @@ -22,7 +22,7 @@ import java.util.Map; | ||
| 22 | @TableName(value = "sys_operate_log", autoResultMap = true) | 22 | @TableName(value = "sys_operate_log", autoResultMap = true) |
| 23 | @Data | 23 | @Data |
| 24 | @EqualsAndHashCode(callSuper = true) | 24 | @EqualsAndHashCode(callSuper = true) |
| 25 | -public class SysOperateLogDO extends BaseDO { | 25 | +public class SysOperateLogDO extends TenantBaseDO { |
| 26 | 26 | ||
| 27 | /** | 27 | /** |
| 28 | * {@link #javaMethodArgs} 的最大长度 | 28 | * {@link #javaMethodArgs} 的最大长度 |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/notice/SysNoticeDO.java
| 1 | package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.notice; | 1 | package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.notice; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||
| 5 | import cn.iocoder.yudao.adminserver.modules.system.enums.notice.SysNoticeTypeEnum; | 3 | import cn.iocoder.yudao.adminserver.modules.system.enums.notice.SysNoticeTypeEnum; |
| 4 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 5 | +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; | ||
| 6 | import com.baomidou.mybatisplus.annotation.TableField; | 6 | import com.baomidou.mybatisplus.annotation.TableField; |
| 7 | import com.baomidou.mybatisplus.annotation.TableName; | 7 | import com.baomidou.mybatisplus.annotation.TableName; |
| 8 | import lombok.Data; | 8 | import lombok.Data; |
| @@ -16,7 +16,7 @@ import lombok.EqualsAndHashCode; | @@ -16,7 +16,7 @@ import lombok.EqualsAndHashCode; | ||
| 16 | @TableName("sys_notice") | 16 | @TableName("sys_notice") |
| 17 | @Data | 17 | @Data |
| 18 | @EqualsAndHashCode(callSuper = true) | 18 | @EqualsAndHashCode(callSuper = true) |
| 19 | -public class SysNoticeDO extends BaseDO { | 19 | +public class SysNoticeDO extends TenantBaseDO { |
| 20 | 20 | ||
| 21 | /** | 21 | /** |
| 22 | * 公告ID | 22 | * 公告ID |
yudao-admin-server/src/main/resources/application.yaml
| @@ -73,7 +73,7 @@ yudao: | @@ -73,7 +73,7 @@ yudao: | ||
| 73 | constants-class-list: | 73 | constants-class-list: |
| 74 | - cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants | 74 | - cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants |
| 75 | - cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants | 75 | - cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants |
| 76 | - tenant: | ||
| 77 | - tables: sys_user, sys_user_session | 76 | + tenant: # 多租户相关配置项 |
| 77 | + tables: # 配置需要开启多租户的表;如果实体已经继承 TenantBaseDO 类,则无需重复配置 | ||
| 78 | 78 | ||
| 79 | debug: false | 79 | debug: false |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/infra/dal/dataobject/file/InfFileDO.java
| 1 | package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file; | 1 | package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 4 | +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; | ||
| 4 | import com.baomidou.mybatisplus.annotation.IdType; | 5 | import com.baomidou.mybatisplus.annotation.IdType; |
| 5 | import com.baomidou.mybatisplus.annotation.TableField; | 6 | import com.baomidou.mybatisplus.annotation.TableField; |
| 6 | import com.baomidou.mybatisplus.annotation.TableId; | 7 | import com.baomidou.mybatisplus.annotation.TableId; |
| @@ -21,7 +22,7 @@ import java.io.InputStream; | @@ -21,7 +22,7 @@ import java.io.InputStream; | ||
| 21 | @Builder | 22 | @Builder |
| 22 | @NoArgsConstructor | 23 | @NoArgsConstructor |
| 23 | @AllArgsConstructor | 24 | @AllArgsConstructor |
| 24 | -public class InfFileDO extends BaseDO { | 25 | +public class InfFileDO extends TenantBaseDO { |
| 25 | 26 | ||
| 26 | /** | 27 | /** |
| 27 | * 文件路径 | 28 | * 文件路径 |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/infra/dal/dataobject/logger/InfApiAccessLogDO.java
| @@ -2,7 +2,7 @@ package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger; | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | 3 | import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 5 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 5 | +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; |
| 6 | import com.baomidou.mybatisplus.annotation.TableId; | 6 | import com.baomidou.mybatisplus.annotation.TableId; |
| 7 | import com.baomidou.mybatisplus.annotation.TableName; | 7 | import com.baomidou.mybatisplus.annotation.TableName; |
| 8 | import lombok.*; | 8 | import lombok.*; |
| @@ -21,7 +21,7 @@ import java.util.Date; | @@ -21,7 +21,7 @@ import java.util.Date; | ||
| 21 | @Builder | 21 | @Builder |
| 22 | @NoArgsConstructor | 22 | @NoArgsConstructor |
| 23 | @AllArgsConstructor | 23 | @AllArgsConstructor |
| 24 | -public class InfApiAccessLogDO extends BaseDO { | 24 | +public class InfApiAccessLogDO extends TenantBaseDO { |
| 25 | 25 | ||
| 26 | /** | 26 | /** |
| 27 | * 编号 | 27 | * 编号 |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/infra/dal/dataobject/logger/InfApiErrorLogDO.java
| 1 | package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger; | 1 | package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | ||
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||
| 5 | import cn.iocoder.yudao.coreservice.modules.infra.enums.logger.InfApiErrorLogProcessStatusEnum; | 3 | import cn.iocoder.yudao.coreservice.modules.infra.enums.logger.InfApiErrorLogProcessStatusEnum; |
| 4 | +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | ||
| 5 | +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; | ||
| 6 | import com.baomidou.mybatisplus.annotation.TableId; | 6 | import com.baomidou.mybatisplus.annotation.TableId; |
| 7 | import com.baomidou.mybatisplus.annotation.TableName; | 7 | import com.baomidou.mybatisplus.annotation.TableName; |
| 8 | import lombok.*; | 8 | import lombok.*; |
| @@ -21,7 +21,7 @@ import java.util.Date; | @@ -21,7 +21,7 @@ import java.util.Date; | ||
| 21 | @Builder | 21 | @Builder |
| 22 | @NoArgsConstructor | 22 | @NoArgsConstructor |
| 23 | @AllArgsConstructor | 23 | @AllArgsConstructor |
| 24 | -public class InfApiErrorLogDO extends BaseDO { | 24 | +public class InfApiErrorLogDO extends TenantBaseDO { |
| 25 | 25 | ||
| 26 | /** | 26 | /** |
| 27 | * 编号 | 27 | * 编号 |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/member/dal/dataobject/user/MbrUserDO.java
| 1 | package cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user; | 1 | package cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 4 | +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; |
| 5 | import com.baomidou.mybatisplus.annotation.TableId; | 5 | import com.baomidou.mybatisplus.annotation.TableId; |
| 6 | import com.baomidou.mybatisplus.annotation.TableName; | 6 | import com.baomidou.mybatisplus.annotation.TableName; |
| 7 | import lombok.*; | 7 | import lombok.*; |
| @@ -22,7 +22,7 @@ import java.util.Date; | @@ -22,7 +22,7 @@ import java.util.Date; | ||
| 22 | @Builder | 22 | @Builder |
| 23 | @NoArgsConstructor | 23 | @NoArgsConstructor |
| 24 | @AllArgsConstructor | 24 | @AllArgsConstructor |
| 25 | -public class MbrUserDO extends BaseDO { | 25 | +public class MbrUserDO extends TenantBaseDO { |
| 26 | 26 | ||
| 27 | /** | 27 | /** |
| 28 | * 用户ID | 28 | * 用户ID |
yudao-framework/pom.xml
| @@ -33,6 +33,7 @@ | @@ -33,6 +33,7 @@ | ||
| 33 | <module>yudao-spring-boot-starter-biz-weixin</module> | 33 | <module>yudao-spring-boot-starter-biz-weixin</module> |
| 34 | <module>yudao-spring-boot-starter-extension</module> | 34 | <module>yudao-spring-boot-starter-extension</module> |
| 35 | <module>yudao-spring-boot-starter-tenant</module> | 35 | <module>yudao-spring-boot-starter-tenant</module> |
| 36 | + <module>yudao-spring-boot-starter-datascope</module> | ||
| 36 | </modules> | 37 | </modules> |
| 37 | 38 | ||
| 38 | <artifactId>yudao-framework</artifactId> | 39 | <artifactId>yudao-framework</artifactId> |
yudao-framework/yudao-spring-boot-starter-datascope/pom.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
| 3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
| 5 | + <parent> | ||
| 6 | + <artifactId>yudao-framework</artifactId> | ||
| 7 | + <groupId>cn.iocoder.boot</groupId> | ||
| 8 | + <version>${revision}</version> | ||
| 9 | + </parent> | ||
| 10 | + <modelVersion>4.0.0</modelVersion> | ||
| 11 | + <artifactId>yudao-spring-boot-starter-datascope</artifactId> | ||
| 12 | + <packaging>jar</packaging> | ||
| 13 | + | ||
| 14 | + <name>${artifactId}</name> | ||
| 15 | + <description>数据权限</description> | ||
| 16 | + <url>https://github.com/YunaiV/ruoyi-vue-pro</url> | ||
| 17 | + | ||
| 18 | + <dependencies> | ||
| 19 | + <dependency> | ||
| 20 | + <groupId>cn.iocoder.boot</groupId> | ||
| 21 | + <artifactId>yudao-common</artifactId> | ||
| 22 | + </dependency> | ||
| 23 | + | ||
| 24 | + <!-- Web 相关 --> | ||
| 25 | + <dependency> | ||
| 26 | + <groupId>org.springframework.boot</groupId> | ||
| 27 | + <artifactId>spring-boot-starter-web</artifactId> | ||
| 28 | + </dependency> | ||
| 29 | + | ||
| 30 | + <dependency> | ||
| 31 | + <groupId>cn.iocoder.boot</groupId> | ||
| 32 | + <artifactId>yudao-spring-boot-starter-security</artifactId> | ||
| 33 | + </dependency> | ||
| 34 | + | ||
| 35 | + <!-- DB 相关 --> | ||
| 36 | + <dependency> | ||
| 37 | + <groupId>cn.iocoder.boot</groupId> | ||
| 38 | + <artifactId>yudao-spring-boot-starter-mybatis</artifactId> | ||
| 39 | + </dependency> | ||
| 40 | + | ||
| 41 | + <dependency> | ||
| 42 | + <groupId>cn.iocoder.boot</groupId> | ||
| 43 | + <artifactId>yudao-spring-boot-starter-redis</artifactId> | ||
| 44 | + </dependency> | ||
| 45 | + | ||
| 46 | + <!-- Job 定时任务相关 --> | ||
| 47 | + <dependency> | ||
| 48 | + <groupId>cn.iocoder.boot</groupId> | ||
| 49 | + <artifactId>yudao-spring-boot-starter-job</artifactId> | ||
| 50 | + </dependency> | ||
| 51 | + | ||
| 52 | + <!-- 消息队列相关 --> | ||
| 53 | + <dependency> | ||
| 54 | + <groupId>cn.iocoder.boot</groupId> | ||
| 55 | + <artifactId>yudao-spring-boot-starter-mq</artifactId> | ||
| 56 | + </dependency> | ||
| 57 | + | ||
| 58 | + <!-- Test 测试相关 --> | ||
| 59 | + <dependency> | ||
| 60 | + <groupId>org.springframework.boot</groupId> | ||
| 61 | + <artifactId>spring-boot-starter-test</artifactId> | ||
| 62 | + <scope>test</scope> | ||
| 63 | + </dependency> | ||
| 64 | + </dependencies> | ||
| 65 | + | ||
| 66 | +</project> |
yudao-framework/yudao-spring-boot-starter-datascope/src/main/java/cn/iocoder/yudao/framework/datascope/package-info.java
0 → 100644
yudao-framework/yudao-spring-boot-starter-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantDatabaseInterceptor.java
| @@ -3,6 +3,8 @@ package cn.iocoder.yudao.framework.tenant.core.db; | @@ -3,6 +3,8 @@ package cn.iocoder.yudao.framework.tenant.core.db; | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | import cn.iocoder.yudao.framework.tenant.config.TenantProperties; | 4 | import cn.iocoder.yudao.framework.tenant.config.TenantProperties; |
| 5 | import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; | 5 | import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; |
| 6 | +import com.baomidou.mybatisplus.core.metadata.TableInfo; | ||
| 7 | +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; | ||
| 6 | import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; | 8 | import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; |
| 7 | import lombok.AllArgsConstructor; | 9 | import lombok.AllArgsConstructor; |
| 8 | import net.sf.jsqlparser.expression.Expression; | 10 | import net.sf.jsqlparser.expression.Expression; |
| @@ -25,6 +27,11 @@ public class TenantDatabaseInterceptor implements TenantLineHandler { | @@ -25,6 +27,11 @@ public class TenantDatabaseInterceptor implements TenantLineHandler { | ||
| 25 | 27 | ||
| 26 | @Override | 28 | @Override |
| 27 | public boolean ignoreTable(String tableName) { | 29 | public boolean ignoreTable(String tableName) { |
| 30 | + // 如果实体类继承 TenantBaseDO 类,则是多租户表,不进行忽略 | ||
| 31 | + TableInfo tableInfo = TableInfoHelper.getTableInfo(tableName); | ||
| 32 | + if (tableInfo != null && TenantBaseDO.class.isAssignableFrom(tableInfo.getEntityType())) { | ||
| 33 | + return false; | ||
| 34 | + } | ||
| 28 | // 不包含,说明要过滤 | 35 | // 不包含,说明要过滤 |
| 29 | return !CollUtil.contains(properties.getTables(), tableName); | 36 | return !CollUtil.contains(properties.getTables(), tableName); |
| 30 | } | 37 | } |
yudao-framework/yudao-spring-boot-starter-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/web/TenantContextWebFilter.java
| @@ -14,9 +14,6 @@ import java.io.IOException; | @@ -14,9 +14,6 @@ import java.io.IOException; | ||
| 14 | * 多租户 Context Web 过滤器 | 14 | * 多租户 Context Web 过滤器 |
| 15 | * 将请求 Header 中的 tenant-id 解析出来,添加到 {@link TenantContextHolder} 中,这样后续的 DB 等操作,可以获得到租户编号。 | 15 | * 将请求 Header 中的 tenant-id 解析出来,添加到 {@link TenantContextHolder} 中,这样后续的 DB 等操作,可以获得到租户编号。 |
| 16 | * | 16 | * |
| 17 | - * Q:会不会存在模拟 tenant-id 导致跨租户的问题? | ||
| 18 | - * A:用户登陆后,获得的 Token 是基于租户级别隔离,从而保证授权失败。 | ||
| 19 | - * | ||
| 20 | * @author 芋道源码 | 17 | * @author 芋道源码 |
| 21 | */ | 18 | */ |
| 22 | public class TenantContextWebFilter extends OncePerRequestFilter { | 19 | public class TenantContextWebFilter extends OncePerRequestFilter { |
更新日志.md
| @@ -20,10 +20,24 @@ | @@ -20,10 +20,24 @@ | ||
| 20 | 20 | ||
| 21 | ## [v1.2.0] 进行中 | 21 | ## [v1.2.0] 进行中 |
| 22 | 22 | ||
| 23 | -* 新增用户前台的昵称、头像的修改 | ||
| 24 | -* 修复通知和字典查询权限 Bug | 23 | +### ⚠️ Warning |
| 25 | 24 | ||
| 26 | -TODO | 25 | +这是一个多租户的预览版本,涉及的改动较大。 |
| 26 | + | ||
| 27 | +### ⭐ New Features | ||
| 28 | + | ||
| 29 | +* 【新增】多租户,支持 Web、Security、Job、MQ、Async、DB、Redis 组件 | ||
| 30 | +* 【新增】用户前台的昵称、头像的修改 | ||
| 31 | + | ||
| 32 | +### 🐞 Bug Fixes | ||
| 33 | + | ||
| 34 | +* 【修复】通知和字典查询权限 Bug | ||
| 35 | + | ||
| 36 | +### 🔨 Dependency Upgrades | ||
| 37 | + | ||
| 38 | +暂无 | ||
| 39 | + | ||
| 40 | +### 📝 TODO | ||
| 27 | 41 | ||
| 28 | * 支付 | 42 | * 支付 |
| 29 | * 用户前台的社交登陆 | 43 | * 用户前台的社交登陆 |