# JAVA获取当前用户信息
# 获取当前用户信息
方案一:通过 Security抽象类的抽象接口获取当前用户信息
@PostMapping("/test")
public ResponseEntity<String> testMethod(@RequestBody Map<String, String> body, @RequestHeader Map<String, String> headers) {
UserInfo userInfo = Security.getCurrentUser();
...
}
方案二:通过 SecuritySupport 获取当前用户信息
// 添加注解
@Autowired
SecuritySupport securitySupport;
@PostMapping("/test")
public ResponseEntity<String> testMethod(@RequestBody Map<String, String> body, @RequestHeader Map<String, String> headers) {
// 调用方法
UserInfo userInfo = securitySupport.getSecurityContext().getUser();
...
}
# 获取请求 Token
在java代码中获取当前请求的token通常有两种方式:
- 通过
@RequestHeader获取请求头中的authorization字段,然后解析出token (带了 Bearer)。 - 通过
OAuth2ResourceServerContext获取当前请求token。
方案一:
@PostMapping("/test")
public ResponseEntity<String> testMethod(@RequestBody Map<String, String> body, @RequestHeader Map<String, String> headers) {
String auth = headers.get("authorization");
...
}
方案二:
@Autowired
OAuth2ResourceServerContext context;
@GetMapping("/test")
public void test () {
String token = context.getRequestToken().getTokenValue();
...
}