private Response getSyncHandlerResponse(String addonKey, URI callbackUri, String jsonEventData, Optional<String> authHeader) throws LifecycleCallbackException { try { Request.Builder request = httpClient.newRequest(callbackUri); request.setAttribute("purpose", "web-hook-notification"); request.setAttribute("pluginKey", addonKey); request.setContentType(MediaType.APPLICATION_JSON); request.setEntity(jsonEventData); if (authHeader.isPresent()) { request.setHeader(AUTHORIZATION_HEADER, authHeader.get()); } request.setHeader(HttpHeaderNames.ATLASSIAN_CONNECT_VERSION, getConnectPluginVersion()); return request.execute(Request.Method.POST).claim(); } catch (Exception e) { log.error("Error contacting remote application at " + callbackUri + " [" + e.getMessage() + "]", e); String message = "Error contacting remote application [" + e.getMessage() + "]"; Throwable cause = e.getCause(); if (cause instanceof UnknownHostException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.bad.domain", callbackUri.getHost()); } else if (cause instanceof SocketTimeoutException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.timeout", removeQuery(callbackUri)); } else if (cause instanceof SSLException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.ssl", removeQuery(callbackUri), cause.getMessage()); } throw new LifecycleCallbackException(message, "connect.remote.upm.install.exception"); } }
private Response getSyncHandlerResponse(String addonKey, URI callbackUri, String jsonEventData, Optional<String> authHeader) throws LifecycleCallbackException { try { Request.Builder request = httpClient.newRequest(callbackUri); request.setCacheDisabled(); request.setAttribute("purpose", "web-hook-notification"); request.setAttribute("pluginKey", addonKey); request.setContentType(MediaType.APPLICATION_JSON); request.setEntity(jsonEventData); if (authHeader.isPresent()) { request.setHeader(AUTHORIZATION_HEADER, authHeader.get()); } request.setHeader(HttpHeaderNames.ATLASSIAN_CONNECT_VERSION, getConnectPluginVersion()); return request.execute(Request.Method.POST).claim(); } catch (Exception e) { log.error("Error contacting remote application at " + callbackUri + " [" + e.getMessage() + "]", e); String message = "Error contacting remote application [" + e.getMessage() + "]"; Throwable cause = e.getCause(); if (cause instanceof UnknownHostException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.bad.domain", callbackUri.getHost()); } else if (cause instanceof SocketTimeoutException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.timeout", removeQuery(callbackUri)); } else if (cause instanceof SSLException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.ssl", removeQuery(callbackUri), cause.getMessage()); } throw new LifecycleCallbackException(message, "connect.remote.upm.install.exception"); } }
private Promise<Void> postAttachments(final URI attachmentsUri, final MultipartEntityBuilder multipartEntityBuilder) { final ResponsePromise responsePromise = client() .newRequest(attachmentsUri) .setEntity(new MultiPartEntityBuilder(multipartEntityBuilder.build())) .setHeader("X-Atlassian-Token", "nocheck") .post(); return call(responsePromise); }
@Override public void configure(Request.Builder builder) { builder.setHeader(AUTHORIZATION_HEADER, "Basic " + encodeCredentials()); }