Добавление параметров в webclient

#java #spring-boot #webclient

Вопрос:

Мне нужна помощь!

вот мой веб-клиент

 private WebClient client = WebClient.create("http://address:port");  public Monolt;RespDtogt; translate(AuthPrincipal principal, ReqDto dto, String token) {  return client.get()  .uri(uriBuilder -gt; uriBuilder  .path("/api")  .queryParam("id", dto.getId())  .queryParam("content", dto.getContent())  .queryParam("profile", dto.getProfile())  .build())  .headers(h -gt; h.setBearerAuth(token.split(" ")[1]))  .retrieve()  .bodyToMono(RespDto.class);  }  

а вот контроллер для api, который я пытаюсь получить

 @GetMapping("") public Monolt;?gt; trans(@AuthenticationPrincipal @ApiIgnore AuthPrincipal principal,  @Valid ReqDto reqDto) {  return service.function(principal, reqDto); }  

Поэтому моя проблема в том, что служебная функция проверяет идентификатор участника на наличие полномочий, но я знаю, как передать объект AuthPrincipal через webclient…

пожалуйста, помогите нубу!

Комментарии:

1. Вы не. Вы передаете свои учетные данные/токен или что-то еще, необходимое для аутентификации на сервере.

Ответ №1:

Вы уже предоставляете токен аутентификации на предъявителя со следующей строкой кода: .headers(h -gt; h.setBearerAuth(token.split(" ")[1])) . Если это работает правильно, и вы можете аутентифицировать себя с помощью целевого API, то Spring введет AuthPrincipal метод конечной точки (при условии, что ваша конфигурация / настройка безопасности Spring работает правильно).