Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot OAuth2RestTemplate在令牌过期后不会刷新该令牌_Spring Boot_Oauth 2.0 - Fatal编程技术网

Spring boot OAuth2RestTemplate在令牌过期后不会刷新该令牌

Spring boot OAuth2RestTemplate在令牌过期后不会刷新该令牌,spring-boot,oauth-2.0,Spring Boot,Oauth 2.0,我使用的是Spring OAuth2RestTemplate,令牌在过期后不会刷新。下面是我的令牌提供者。我错过了什么?任何指点都会很有帮助 @Bean public AccessTokenProvider clientAccessTokenProvider() { ClientCredentialsAccessTokenProvider accessTokenProvider = new ClientCredentialsAccessTokenProvi

我使用的是Spring OAuth2RestTemplate,令牌在过期后不会刷新。下面是我的令牌提供者。我错过了什么?任何指点都会很有帮助

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

根据spring boot oAuth实现,ClientCredentialsAccessTokenProvider不支持“刷新令牌”

我通过检查到期时间并在进行rest调用之前将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
        }
    }

我遵循这个repo来设置配置:如果令牌响应(特别是expires_in)不是默认格式,则可能会发生这种情况。您验证了吗?您使用的是哪个版本的Spring Boot?org.springframework.security.oauth:Spring-security-oauth2是OAuthClient,sprinboot版本:2.1.8。RELEASE@Abbin它是默认格式