Я пытаюсь использовать весенний веб-клиент для вызова ebay browse API. Аутентификация предоставляется с использованием OAuth2.
Однако API просмотра ebay не отправляет токен обновления. Срок действия токена истекает через 2 часа. Фильтр Spring проверяет наличие токена обновления и только затем обновляет токен.
Поскольку токен обновления отсутствует, токен доступа не обновляется, и вызовы перестают работать через 2 часа.
Как мы можем заставить его работать с веб-потоком Spring?
Код, который я использую в настоящее время это:
@Bean
public ServerOAuth2AuthorizedClientExchangeFilterFunction getServerOAuth2AuthorizedClientExchangeFilterFunction(
ReactiveClientRegistrationRepository clientRegistrations) {
ServerOAuth2AuthorizedClientExchangeFilterFunction oauth = new ServerOAuth2AuthorizedClientExchangeFilterFunction(
clientRegistrations,
new UnAuthenticatedServerOAuth2AuthorizedClientRepository());
oauth.setDefaultClientRegistrationId("ebay");
return oauth;
}
public WebClient getEbayWebClient(
ServerOAuth2AuthorizedClientExchangeFilterFunction oauth,
WebClient.Builder webClientBuilder) {
return webClientBuilder
.baseUrl("ebayendpoint") //actual url will go here
.defaultHeader(ACCEPT_CHARSET, StandardCharsets.UTF_8.name())
.filter(oauth).build();
}