获取当前的登录用户信息

如何获取当前的用户信息 支持版本: 2.4.1,2.5.1

应用场景

如果需要获取当前请求的用户信息时使用
请注意,此方法是通过ThreadLocal中的Request对象获取用户信息,所以如果使用了异步调用。此方法会失效。请在Controller对象中注入对象并传递给Service使用。尽量避免在Service实现类中直接使用。

方式一:使用UserContext

第一步 引用pom

hvisions-common-springboot-starter版本3.5.5+

<dependency>
    <groupId>com.hvisions</groupId>
    <artifactId>hvisions-common-springboot-starter</artifactId>
    <version>3.5.6</version>
</dependency>

第二步 使用

注入bean

@Autowired
UserContext userContext;

在代码中使用

UserInfoDTO userInfo = userContext.getSecureUser();
UserInfoDTO userInfo = userContext.getCurrentUser();

注:
UserContext.getSecureUser();会校验当前用户信息是否为空,为空则会抛出异常

方式二(旧版本):使用@UserInfo

检查server module的依赖

<!--  2.5.1 -->
<dependency>
      <groupId>com.hvisions</groupId>
      <artifactId>hvisions-common-springboot-starter</artifactId>
      <version>3.5.5</version>
</dependency>

检查common module的依赖

<dependency>
	<groupId>com.hvisions</groupId>
	<artifactId>common-interface</artifactId>
	<version>3.5.5</version>
</dependency>

控制器上使用注解直接获取当前请求人的信息,当请求发生的时候会自动填充userInfo的值

@ApiOperation(value = "test")
@GetMapping(value = "/test")
public void test(@UserInfo @ApiIgnore UserInfoDTO userInfo) {
		log.info(userInfo.toString());
}
2024-04-28
0