List of usage examples for org.apache.http.auth MalformedChallengeException printStackTrace
public void printStackTrace()
From source file:io.fabric8.devops.connector.DevOpsConnector.java
protected void createGerritRepo(String repoName, String gerritUser, String gerritPwd, String gerritGitInitialCommit, String gerritGitRepoDescription) throws Exception { // lets add defaults if not env vars if (Strings.isNullOrBlank(gerritUser)) { gerritUser = "admin"; }//from w ww. j a v a 2s. c om if (Strings.isNullOrBlank(gerritPwd)) { gerritPwd = "secret"; } log.info("A Gerrit git repo will be created for this name : " + repoName); String gerritAddress = KubernetesHelper.getServiceURL(kubernetes, ServiceNames.GERRIT, namespace, "http", true); log.info("Found gerrit address: " + gerritAddress + " for namespace: " + namespace + " on Kubernetes address: " + kubernetes.getMasterUrl()); if (Strings.isNullOrBlank(gerritAddress)) { throw new Exception("No address for service " + ServiceNames.GERRIT + " in namespace: " + namespace + " on Kubernetes address: " + kubernetes.getMasterUrl()); } CloseableHttpClient httpclient = HttpClients.createDefault(); CloseableHttpClient httpclientPost = HttpClients.createDefault(); String GERRIT_URL = gerritAddress + "/a/projects/" + repoName; HttpGet httpget = new HttpGet(GERRIT_URL); System.out.println("Requesting : " + httpget.getURI()); try { //Initial request without credentials returns "HTTP/1.1 401 Unauthorized" HttpResponse response = httpclient.execute(httpget); System.out.println(response.getStatusLine()); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_UNAUTHORIZED) { // Get current current "WWW-Authenticate" header from response // WWW-Authenticate:Digest realm="My Test Realm", qop="auth", // nonce="cdcf6cbe6ee17ae0790ed399935997e8", opaque="ae40d7c8ca6a35af15460d352be5e71c" Header authHeader = response.getFirstHeader(AUTH.WWW_AUTH); System.out.println("authHeader = " + authHeader); DigestScheme digestScheme = new DigestScheme(); //Parse realm, nonce sent by server. digestScheme.processChallenge(authHeader); UsernamePasswordCredentials creds = new UsernamePasswordCredentials(gerritUser, gerritPwd); httpget.addHeader(digestScheme.authenticate(creds, httpget, null)); HttpPost httpPost = new HttpPost(GERRIT_URL); httpPost.addHeader(digestScheme.authenticate(creds, httpPost, null)); httpPost.addHeader("Content-Type", "application/json"); CreateRepositoryDTO createRepoDTO = new CreateRepositoryDTO(); createRepoDTO.setDescription(gerritGitRepoDescription); createRepoDTO.setName(repoName); createRepoDTO.setCreate_empty_commit(Boolean.valueOf(gerritGitInitialCommit)); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(createRepoDTO); HttpEntity entity = new StringEntity(json); httpPost.setEntity(entity); ResponseHandler<String> responseHandler = new BasicResponseHandler(); String responseBody = httpclientPost.execute(httpPost, responseHandler); System.out.println("responseBody : " + responseBody); } } catch (MalformedChallengeException e) { e.printStackTrace(); } catch (AuthenticationException e) { e.printStackTrace(); } catch (ConnectException e) { System.out.println("Gerrit Server is not responding"); } catch (HttpResponseException e) { System.out.println("Response from Gerrit Server : " + e.getMessage()); throw new Exception("Repository " + repoName + " already exists !"); } finally { httpclient.close(); httpclientPost.close(); } }