@Override public void initialize(HttpRequest httpRequest) throws IOException { credentialsAdapter.initialize(httpRequest); httpRequest.setConnectTimeout(connectTimeout); httpRequest.setReadTimeout(readTimeout); } }
try { credentials.refresh(); initialize(request); return true; } catch (IOException exception) {
try { credentials.refresh(); initialize(request); return true; } catch (IOException exception) {
adapter.initialize(request); request.setParser(parser);
adapter.initialize(request); request.setParser(parser);
@Test public void initialize_noURI() throws IOException { final String accessToken = "1/MkSJoj1xsli0AccessToken_NKPY2"; final String expectedAuthorization = InternalAuthHttpConstants.BEARER_PREFIX + accessToken; MockTokenServerTransportFactory tokenServerTransportFactory = new MockTokenServerTransportFactory(); tokenServerTransportFactory.transport.addClient(CLIENT_ID, CLIENT_SECRET); tokenServerTransportFactory.transport.addRefreshToken(REFRESH_TOKEN, accessToken); OAuth2Credentials credentials = UserCredentials.newBuilder() .setClientId(CLIENT_ID) .setClientSecret(CLIENT_SECRET) .setRefreshToken(REFRESH_TOKEN) .setHttpTransportFactory(tokenServerTransportFactory) .build(); HttpCredentialsAdapter adapter = new HttpCredentialsAdapter(credentials); HttpRequestFactory requestFactory = tokenServerTransportFactory.transport.createRequestFactory(); HttpRequest request = requestFactory.buildGetRequest(null); adapter.initialize(request); HttpHeaders requestHeaders = request.getHeaders(); String authorizationHeader = requestHeaders.getAuthorization(); assertEquals(authorizationHeader, expectedAuthorization); } }
@Test public void initialize_populatesOAuth2Credentials() throws IOException { final String accessToken = "1/MkSJoj1xsli0AccessToken_NKPY2"; final String expectedAuthorization = InternalAuthHttpConstants.BEARER_PREFIX + accessToken; MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory(); transportFactory.transport.addClient(CLIENT_ID, CLIENT_SECRET); transportFactory.transport.addRefreshToken(REFRESH_TOKEN, accessToken); OAuth2Credentials credentials = UserCredentials.newBuilder() .setClientId(CLIENT_ID) .setClientSecret(CLIENT_SECRET) .setRefreshToken(REFRESH_TOKEN) .setHttpTransportFactory(transportFactory) .build(); HttpCredentialsAdapter adapter = new HttpCredentialsAdapter(credentials); HttpRequestFactory requestFactory = transportFactory.transport.createRequestFactory(); HttpRequest request = requestFactory.buildGetRequest(new GenericUrl("http://foo")); adapter.initialize(request); HttpHeaders requestHeaders = request.getHeaders(); String authorizationHeader = requestHeaders.getAuthorization(); assertEquals(authorizationHeader, expectedAuthorization); }
@Test public void initialize_populatesOAuth2Credentials_handle401() throws IOException { final String accessToken = "1/MkSJoj1xsli0AccessToken_NKPY2"; final String accessToken2 = "2/MkSJoj1xsli0AccessToken_NKPY2"; MockTokenServerTransportFactory tokenServerTransportFactory = new MockTokenServerTransportFactory(); tokenServerTransportFactory.transport.addClient(CLIENT_ID, CLIENT_SECRET); tokenServerTransportFactory.transport.addRefreshToken(REFRESH_TOKEN, accessToken); OAuth2Credentials credentials = UserCredentials.newBuilder() .setClientId(CLIENT_ID) .setClientSecret(CLIENT_SECRET) .setRefreshToken(REFRESH_TOKEN) .setHttpTransportFactory(tokenServerTransportFactory) .build(); credentials.refresh(); HttpCredentialsAdapter adapter = new HttpCredentialsAdapter(credentials); HttpTransport primaryHttpTransport = new MockTokenCheckingTransport(tokenServerTransportFactory.transport, REFRESH_TOKEN); HttpRequestFactory requestFactory = primaryHttpTransport.createRequestFactory(); HttpRequest request = requestFactory.buildGetRequest(new GenericUrl("http://foo")); adapter.initialize(request); // now switch out the access token so that the original one is invalid, // requiring a refresh of the access token tokenServerTransportFactory.transport.addRefreshToken(REFRESH_TOKEN, accessToken2); HttpResponse response = request.execute(); // make sure that the request is successful despite the invalid access token assertEquals(200, response.getStatusCode()); assertEquals(MockTokenCheckingTransport.SUCCESS_CONTENT, response.parseAsString()); }