>多租户数据隔离:根据不同的租户实现数据隔离,下面让我们一起来看看如何实现多租户数据隔离吧 >[warning]版本支持1.5.2+(不包含1.5.2) ## jeecg-boot ### 后台配置 >`JimuReportTokenService`类实现新增方法`getTenantId` ![](https://img.kancloud.cn/ac/1d/ac1de1db464c44e76cf8a18b801e8c9f_1616x661.png) ``` /** * 获取多租户id * @return tenantId */ public String getTenantId() { HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); String tenantId = request.getHeader("tenantId"); if(StringUtils.isNotEmpty(tenantId)){ return tenantId; } return ""; } ``` ### 前台配置 >在菜单管理积木报表处新增属性`tenantId` ![](https://img.kancloud.cn/be/32/be32d7dd81a400cb02afa3e9b1227697_1675x915.png) ``` {{ window._CONFIG['domianURL'] }}/jmreport/list?token=${token}&tenantId=${tenantId} ``` ## springboot项目集成 ### 效果展示 >存在`tenantId` ![](https://img.kancloud.cn/74/8b/748be600c35f3fe0c52647ca781d1942_1563x562.png) >不存在`tenantId` ![](https://img.kancloud.cn/19/23/192367ca9e3f3e02d1b00f9c06a8cb6e_1910x963.png) ### 重点来了->后台配置 >`JmReportTokenServiceI`接口新增方法`getTenantId`,默认为`""` ![](https://img.kancloud.cn/80/80/80805335f277d9f03d64227521b191ce_631x48.png) > 实现类新增方法getTenantId() ![](https://img.kancloud.cn/89/ff/89ff7a3e120bcffa9cb39fe3fa8282bc_1709x609.png) ``` @Override public String getTenantId() { //获取tenantId租户id的逻辑 return "1"; } ``` ### 重点来了->前台配置 >访问路径拼接`tenantId`,如果你想在`header`中获取数据,那么需要配置此步骤,配置成动态路径需要根据自己的前台项目进行动态访问 ``` http://localhost:9000/jmreport/list?tenantId=值 ``` ![](https://img.kancloud.cn/0f/06/0f06e80d4aab113d4b18cef3b7e4d826_1545x983.png)