use of com.google.api.client.http.HttpHeaders in project google-cloud-intellij by GoogleCloudPlatform.
the class CloudDebuggerClient method getClient.
/**
* Returns a cloud debugger connection given a user email to indicate the credentials to use. The
* function may return null if the user is not logged in.
*/
@Nullable
private static Debugger getClient(@Nullable final String userEmail, final int timeout) {
if (Strings.isNullOrEmpty(userEmail)) {
LOG.warn("unexpected null email in controller initialize.");
return null;
}
final String hashkey = userEmail + timeout;
Debugger cloudDebuggerClient = debuggerClientsFromUserEmail.get(hashkey);
if (cloudDebuggerClient == null) {
try {
final CredentialedUser user = Services.getLoginService().getAllUsers().get(userEmail);
final Credential credential = (user != null ? user.getCredential() : null);
if (credential != null) {
user.getGoogleLoginState().addLoginListener(new LoginListener() {
@Override
public void statusChanged(boolean login) {
if (!login) {
// aggressively remove the cached item on any status change.
debuggerClientsFromUserEmail.remove(hashkey);
} else {
// NOPMD
// user logged in, should we do something?
}
}
});
HttpRequestInitializer initializer = new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest httpRequest) throws IOException {
HttpHeaders headers = new HttpHeaders();
httpRequest.setConnectTimeout(timeout);
httpRequest.setReadTimeout(timeout);
httpRequest.setHeaders(headers);
credential.initialize(httpRequest);
}
};
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
String userAgent = ServiceManager.getService(PluginInfoService.class).getUserAgent();
cloudDebuggerClient = new Builder(httpTransport, JSON_FACTORY, initializer).setRootUrl(ROOT_URL).setApplicationName(userAgent).build().debugger();
}
} catch (IOException ex) {
LOG.warn("Error connecting to Cloud Debugger API", ex);
} catch (GeneralSecurityException ex) {
LOG.warn("Error connecting to Cloud Debugger API", ex);
}
if (cloudDebuggerClient != null) {
debuggerClientsFromUserEmail.put(hashkey, cloudDebuggerClient);
}
}
return cloudDebuggerClient;
}
use of com.google.api.client.http.HttpHeaders in project google-cloud-intellij by GoogleCloudPlatform.
the class CloudDebuggerClientTest method testUserAgent.
@Test
public void testUserAgent() throws IOException {
when(mockInfoService.getUserAgent()).thenReturn("userAgent");
Debugger client = CloudDebuggerClient.getLongTimeoutClient("foo@example.com");
HttpRequest httpRequest = client.debuggees().list().buildHttpRequestUsingHead();
HttpHeaders headers = httpRequest.getHeaders();
String userAgent = headers.getUserAgent();
Assert.assertTrue(userAgent.startsWith("userAgent"));
Assert.assertTrue(userAgent.endsWith("Google-API-Java-Client"));
}
use of com.google.api.client.http.HttpHeaders in project google-api-java-client by google.
the class AppIdentityCredentialTest method testAppEngineCredentialWrapper.
public void testAppEngineCredentialWrapper() throws IOException {
final String expectedAccessToken = "ExpectedAccessToken";
final Collection<String> emptyScopes = Collections.emptyList();
HttpTransport transport = new MockHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
MockAppIdentityService appIdentity = new MockAppIdentityService();
appIdentity.setAccessTokenText(expectedAccessToken);
AppIdentityCredential.Builder builder = new AppIdentityCredential.Builder(emptyScopes);
builder.setAppIdentityService(appIdentity);
AppIdentityCredential appCredential = builder.build();
GoogleCredential wrapper = new AppIdentityCredential.AppEngineCredentialWrapper(appCredential, transport, jsonFactory);
HttpRequest request = transport.createRequestFactory().buildRequest("get", null, null);
assertTrue(wrapper.createScopedRequired());
try {
wrapper.intercept(request);
fail("Should not be able to use credential without scopes.");
} catch (Exception expected) {
}
assertEquals(1, appIdentity.getGetAccessTokenCallCount());
GoogleCredential scopedWrapper = wrapper.createScoped(SCOPES);
assertNotSame(wrapper, scopedWrapper);
scopedWrapper.intercept(request);
assertEquals(2, appIdentity.getGetAccessTokenCallCount());
HttpHeaders headers = request.getHeaders();
String authHeader = headers.getAuthorization();
assertTrue(authHeader.contains(expectedAccessToken));
}
use of com.google.api.client.http.HttpHeaders in project google-api-java-client by google.
the class BatchRequestTest method subtestExecute_checkWriteTo.
private void subtestExecute_checkWriteTo(final String expectedOutput, HttpRequest... requests) throws IOException {
MockHttpTransport transport = new MockHttpTransport() {
@Override
public LowLevelHttpRequest buildRequest(String method, String url) {
return new MockLowLevelHttpRequest(url) {
@Override
public LowLevelHttpResponse execute() throws IOException {
assertEquals("multipart/mixed; boundary=__END_OF_PART__", getContentType());
ByteArrayOutputStream out = new ByteArrayOutputStream();
getStreamingContent().writeTo(out);
assertEquals(expectedOutput, out.toString("UTF-8"));
MockLowLevelHttpResponse response = new MockLowLevelHttpResponse();
response.setStatusCode(200);
response.addHeader("Content-Type", "multipart/mixed; boundary=" + RESPONSE_BOUNDARY);
String content2 = "{\"name\": \"" + TEST_NAME + "\", \"number\": \"" + TEST_NUM + "\"}";
StringBuilder responseContent = new StringBuilder();
responseContent.append("--" + RESPONSE_BOUNDARY + "\n").append("Content-Type: application/http\n").append("Content-Transfer-Encoding: binary\n").append("Content-ID: response-1\n\n").append("HTTP/1.1 200 OK\n").append("Content-Type: application/json; charset=UTF-8\n").append("Content-Length: " + content2.length() + "\n\n").append(content2 + "\n\n").append("--" + RESPONSE_BOUNDARY + "--\n\n");
response.setContent(responseContent.toString());
return response;
}
};
}
};
BatchRequest batchRequest = new BatchRequest(transport, null);
BatchCallback<Void, Void> callback = new BatchCallback<Void, Void>() {
@Override
public void onSuccess(Void t, HttpHeaders responseHeaders) {
}
@Override
public void onFailure(Void e, HttpHeaders responseHeaders) {
}
};
for (HttpRequest request : requests) {
batchRequest.queue(request, Void.class, Void.class, callback);
}
batchRequest.execute();
}
use of com.google.api.client.http.HttpHeaders in project google-api-java-client by google.
the class GooglePublicKeysManagerTest method testGetCacheTimeInSec.
public void testGetCacheTimeInSec() throws Exception {
GooglePublicKeysManager certs = new GooglePublicKeysManager.Builder(new MockHttpTransport(), new JacksonFactory()).build();
assertEquals(12000, certs.getCacheTimeInSec(new HttpHeaders().setAge(345L).setCacheControl("max-age=" + MAX_AGE)));
assertEquals(0, certs.getCacheTimeInSec(new HttpHeaders()));
assertEquals(0, certs.getCacheTimeInSec(new HttpHeaders().setAge(345L)));
assertEquals(0, certs.getCacheTimeInSec(new HttpHeaders().setAge(345L).setCacheControl("max-age=300")));
}
Aggregations