Вызов API из другого внешнего приложения весенней загрузки - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть два разных приложения Springboot. В каждом из них включена пружинная защита с помощью механизма UsernameAndPasswordAuthentication и JWT. У меня есть требование для вызова одного из API приложения из другого, но мне не нужен пользователь для проверки имени пользователя и пароля, так как оба приложения будут иметь разных пользователей, каждый запрос будет авторизован, если заголовок авторизации содержит действительный токен JWT. что мне нужно, если API вызван из внешнего приложения, он должен проверить, что заголовок авторизации имеет «Basi c someAccessToken». Можно ли вообще сделать такую ​​реализацию.

1 Ответ

0 голосов
/ 30 апреля 2020

Это возможно: вызывающий устанавливает токен JWT в заголовке http authorization (с использованием схемы Bearer, это общепринятая практика)

HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Bearer " + jwtToken);

MyDto dto = new MyDto();
HttpEntity<MyDto> requestEntity = new HttpEntity<>(dto, headers);

ResponseEntity resp =
            new RestTemplate().exchange("http://localhost:8080/rest/service",
                    HttpMethod.POST, requestEntity, String.class);

На стороне службы получите токен и подтвердить доступ:

public ResponseEntity<String> create(@RequestBody MyDto dto, @RequestHeader("authorization") String authorization) throws Exception {

    System.out.println("authorization: " + authorization);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...