Skip to content

用户信息注入

说明

本项目有2种方式可以在后端服务获取当前用户的信息. 推荐使用 @LoginUser SysUser user 获取用户详细信息.

  1. 通过 @LoginUser 注解获取用户详细信息
java
@PostMapping(value = "/postJson")
public R postJson(@LoginUser SysUser user) {
    log.info("user={}", user);   //用户完整信息
    return R.success(user);
}
@PostMapping(value = "/postJson")
public R postJson(@LoginUser SysUser user) {
    log.info("user={}", user);   //用户完整信息
    return R.success(user);
}
  1. 通过 ContextUtil 静态方法获取基本信息
ContextUtil.getUserId();   // 当前用户id
ContextUtil.getEmployeeId();   //当前用户员工ID
ContextUtil.getUserId();   // 当前用户id
ContextUtil.getEmployeeId();   //当前用户员工ID

其中, 想要在Controller方法参数中使用 @LoginUser , 必须参考以下步骤:

  • 在启动类标记 @EnableLoginArgResolver

  • 在Controller方法中加入参数: @LoginUser SysUser user

  • 配置文件中配置:

yaml
acuity:
  security:
    type:  FEIGN   # SERVICE     acuity-boot 配置SERVICE  acuity-cloud 配置FEIGN
acuity:
  security:
    type:  FEIGN   # SERVICE     acuity-boot 配置SERVICE  acuity-cloud 配置FEIGN
  1. acuity-cloud项目必须启动Oauth服务

遇到问题流程:
ContextArgumentResolver#resolveArgument -> BaseEmployeeBiz#getSysUserById

欢迎使用天源云Saas快速开发系统