多租户配置
多租户数据隔离:根据不同的租户实现数据隔离,下面让我们一起来看看如何实现多租户数据隔离吧
版本支持 v1.6.2+
yaml配置
将配置文件中的 saasMode 设置成
tenant
#其他值说明:
created
: 按照创建人数据隔离 (自己看自己数据,比如报表、数据源、数据集、字典,数据源必填)tenant
: 按照租户数据隔离(每个租户看自己租户的数据)
jeecg :
jmreport:
#多租户模式,默认值为空(created:按照创建人隔离、tenant:按照租户隔离) (v1.6.2+ 新增)
saasMode: tenant
后台配置
JimuReportTokenService
类实现新增方法getTenantId
/**
* 获取多租户id
* @return tenantId
*/
public String getTenantId() {
HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
String tenantId = request.getHeader("tenantId");
if(StringUtils.isNotEmpty(tenantId)){
return tenantId;
}
return "";
}
前台配置
在菜单管理积木报表处新增属性
tenantId
{{ window._CONFIG['domianURL'] }}/jmreport/list?token=${token}&tenantId=${tenantId}
springboot项目集成
效果展示
存在
tenantId
不存在
tenantId
重点来了->后台配置
JmReportTokenServiceI
接口新增方法getTenantId
,默认为""
实现类新增方法getTenantId()
@Override
public String getTenantId() {
//获取tenantId租户id的逻辑
return "1";
}
重点来了->前台配置
访问路径拼接
tenantId
,如果你想在header
中获取数据,那么需要配置此步骤,配置成动态路径需要根据自己的前台项目进行动态访问
http://localhost:9000/jmreport/list?tenantId=值