# 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通常有两种方式:

  1. 通过 @RequestHeader 获取请求头中的 authorization 字段,然后解析出token (带了 Bearer)。
  2. 通过 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();
    ...
}

顶部