用户默认角色扩展
概述
当新用户登录时由于没有分配权限,导致用户登录后呈现空白页面。为优化用户体验,pangea提供了一套登录用户绑定默认角色的解决方案。
适用范围
Pangea v2.2.0及以上版本
快速上手
1、在业务模块的pom
文件中添加pangea-common-extends
依赖。
xml
<!--pangea扩展包 -->
<dependency>
<groupId>com.hisense.pangea</groupId>
<artifactId>pangea-common-extends</artifactId>
</dependency>
2、在yml配置文件中添加如下参数:
yaml
pangea:
application:
system_name: demo #系统名称,必须与前端请求headers中systemName参数一致
ignore-role-extend: true
3、实现UserExtendService
服务,并重写queryUserRoleRel
方法。
java
import com.hisense.pangea.service.UserExtendService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @author pangea
* @version Pangea2.0
* @date 2020/11/12 11:41
*/
//注意:此处添加Service注解, 使之交于IOC容器管理bean
@Service
public class UserExtendServcieImpl implements UserExtendService {
/**
* 获取用户与默认角色的关联关系
* 此接口将传入用户ID,登录账号,组织全路径等参数,返回角色编码集合
*
* @param userId 登录用户ID 例: 2
* @param loginName 登录账号 例: zhangsan
* @param orgFullPath 组织全路径 例: 海信集团/IT与数据管理部/技术开发部
* @return 角色编码集合
*/
@Override
public List<String> queryUserRoleRel(Long userId, String loginName, String orgFullPath) {
//业务实现代码...
//以下代码为Demo演示,不可用于实际业务开发
System.out.println("用户ID : " + userId);
System.out.println("登录账号 : " + loginName);
System.out.println("组织全路径 : " + orgFullPath);
List<String> list = new ArrayList<>();
if("admin".equals(loginName)){
list.add("adminRole");
} else{
list.add("userRole");
}
return list;
}
}
注意事项
- 返回的角色编码需要在角色管理中创建并配置好相应的角色权限。
- 此功能目前只提供sso登录方式,自登陆方式将在后续版本迭代中实现,请关注更新日志。
- pangea已提供通用的默认角色,角色编码为[DEFAULT_LOGIN], 业务系统不可使用此角色编码。
- 在实现类上添加[@Service]注解,此目的是为了将[UserExtendService]实现类交于IOC容器管理bean。
- [pangea.application.system_name]必须与前端请求headers中[systemName]参数一致置。
- 项目名称不能以[pangea]开头,即yml配置文件中[spring.application.name]参数配置不能以[pangea]开头,以下代码为错误配置。
yaml
spring:
application:
name: pangea-demo #不能以pangea开头