2015-10-19 173 views
1

我正嘗試使用Google OpenID登錄用戶。Apache Oltu OAuthClient.accessToken()失敗,超時

當我嘗試驗證用戶時,嘗試檢索AccessToken時總是遇到超時。

public class TestRun { 
    public static void main(String args[]) throws OAuthSystemException, OAuthProblemException { 
     OAuthClientRequest request = OAuthClientRequest 
       .tokenProvider(OAuthProviderType.GOOGLE) 
       .setGrantType(GrantType.AUTHORIZATION_CODE) 
       .setCode("") 
       .setRedirectURI(Env.REST_API_LOCATION+"/login") 
       .setClientId(Env.CLIENT_ID) 
       .setClientSecret(Env.CLIENT_SECRET) 
       .buildQueryMessage(); 

     OAuthClient oac = new OAuthClient(new URLConnectionClient()); 
     OAuthAccessTokenResponse response = oac.accessToken(request); 
     System.out.println(response.getAccessToken()); 
     System.out.println(response.getExpiresIn()); 
    } 
} 

我總是碰上的ConnectException(超時)時oac.accessToken(請求)被調用,沒有得到關於所發生的任何詳細信息。

回答

1

所以,問題很簡單。運行我的軟件的系統可以從互聯網訪問,但出站流量被迫使用代理。由於代理不是透明代理,我必須編寫自己的實現HttpClient,它能夠處理代理並用它替換URLConnectionClient