#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 работает правильно).