OAuth2RestTemplate не обновляет sh токен после его истечения - PullRequest
0 голосов
/ 10 февраля 2020

Я использую Spring OAuth2RestTemplate, и токен не обновляется после истечения срока его действия. Ниже мой токен провайдер. Что мне не хватает? Любые указатели действительно помогут.

@Bean
        public AccessTokenProvider clientAccessTokenProvider() {
            ClientCredentialsAccessTokenProvider accessTokenProvider = new ClientCredentialsAccessTokenProvider();
            accessTokenProvider.setRequestFactory(getClientHttpRequestFactory());
            return accessTokenProvider;
        }

1 Ответ

0 голосов
/ 22 февраля 2020

ClientCredentialsAccessTokenProvider не поддерживает «Refre sh Token» в соответствии с реализацией oAuth при весенней загрузке.

Я исправил проблему, проверив срок действия и установив для токена значение в oAuthContext значение NULL, прежде чем выполнить оставшийся вызов. .

  private void checkTokenExpiry() {
        OAuth2ClientContext oAuth2ClientContext = oAuth2RestOperations.getOAuth2ClientContext();
        if (oAuth2ClientContext == null) {
            return;
        }
        OAuth2AccessToken accessToken = oAuth2ClientContext.getAccessToken();
        if (accessToken != null && (accessToken.getExpiresIn() > 5000 || accessToken
            .isExpired())) { //5 seconds
            log.info("Token expired");
            oAuth2RestOperations.getOAuth2ClientContext()
                .setAccessToken(null); //to re-fetch the token
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...