临时可访问租户
一、简介
1.1 概述
在HZERO平台的SAAS版本中,如果一个用户需要访问某个租户的API,那么就需要这个用户拥有目标租户的角色,并且角色拥有目标API的权限,这些操作都是需要手工去操作的,考虑的有一些特殊的租户见交互的业务场景,平台提供了临时可访问租户
的功能,可以“临时”将权限通过代码调用的方式分配。
注意:临时可访问租户
功能依赖HZERO网关的默认实现
<dependency>
<groupId>org.hzero</groupId>
<artifactId>hzero-gateway-helper-default</artifactId>
</dependency>
1.2 组件坐标
<dependency>
<groupId>org.hzero.boot</groupId>
<artifactId>hzero-boot-platform</artifactId>
<version>${hzero.boot.version}</version>
</dependency>
1.3 功能特性
- 为用户提供临时访问某个租户的权限
- 用户能够访问的临时租户的权限取决于当前角色拥有的权限
- 权限过期后会自动删除,不需要手工处理
二、使用说明
2.1 配置说明
- 配置前缀:
hzero.permission.tenant
- 配置属性:
time-unit
:超时时间单位,默认“天”,可选值:DAY(天)、HOURS(小时)、MINUTES(分钟)、SECONDS(秒)、MILLISECONDS(毫秒)、MICROSECONDS(微秒)、NANOSECONDS(纳秒)timeout
:超时时间,默认7
2.2 调用示例
- 临时赋予当前用户访问租户ID为“1”的租户(支持数组批量赋权)的临时权限,时间取服务配置
TemporaryTenantHelper.allowAccess(1L);
- 临时赋予指定用户ID为“1”的用户访问租户ID为“2”的租户(支持数组批量赋权)的临时权限,时间取服务配置
TemporaryTenantHelper.allowAccess(1L, 2L);
- 临时赋予指定用户ID为“1”的用户访问租户ID为“2”的租户(支持数组批量赋权)的临时权限,时间为“7天”
TemporaryTenantHelper.allowAccess(1L, 2L, 7, TimeUnit.DAY);