Как получить новый токен доступа для API просмотра ebay с помощью Spring WebClient после его истечения - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь использовать весенний веб-клиент для вызова 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();
} 
...