На стороне Angular значение заголовка не устанавливается. Вам необходимо присвоить результат набора или добавления обратно переменной:
const headers = new HttpHeaders().set('token', token);
В контроллере вы должны извлечь заголовок из запроса. В Spring вы можете сделать это, используя аннотацию @RequestHeader:
@GetMapping("/extractUsername")
public String extractUsername(@RequestHeader(value="token") String token) {
String username = jwtUtil.extractUsername(token);
return username;
}
В качестве альтернативы, вы также можете добавить HttpServletRequest в метод и извлечь его из запроса:
@GetMapping("/extractUsername")
public String extractUsername(HttpServletRequest request) {
String username = jwtUtil.extractUsername(request.getHeader("token"));
return username;
}