跳到主要内容

多租户配置

多租户数据隔离:根据不同的租户实现数据隔离,下面让我们一起来看看如何实现多租户数据隔离吧

版本支持 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=