Example usage for org.apache.http.client.protocol HttpClientContext create

List of usage examples for org.apache.http.client.protocol HttpClientContext create

Introduction

In this page you can find the example usage for org.apache.http.client.protocol HttpClientContext create.

Prototype

public static HttpClientContext create() 

Source Link

Usage

From source file:org.sonatype.nexus.plugins.crowd.client.rest.RestClient.java

/**
 * @param userid//from   www .  java2  s  .co  m
 * @return a <code>org.sonatype.security.usermanagement.User</code> from Crowd by a userid
 * @throws RemoteException
 */
public User getUser(String userid) throws RemoteException {
    HttpClientContext hc = HttpClientContext.create();
    HttpGet get = new HttpGet(crowdServer.resolve("user?username=" + urlEncode(userid)));

    if (LOG.isDebugEnabled()) {
        LOG.debug("getUser({})", userid);
        LOG.debug(get.getURI().toString());
    }

    UserResponse user = null;
    try {
        enablePreemptiveAuth(acceptXmlResponse(get), hc);
        HttpResponse response = client.execute(get);
        if (response.getStatusLine().getStatusCode() != 200) {
            handleHTTPError(response);
        }

        user = unmarshal(response, UserResponse.class);

    } catch (IOException | JAXBException | AuthenticationException ioe) {
        handleError(ioe);
    } finally {
        get.releaseConnection();
    }

    return Objects.requireNonNull(convertUser(user));
}

From source file:org.keycloak.testsuite.saml.LogoutTest.java

@Test
public void testFrontchannelLogoutDifferentBrowser()
        throws ParsingException, ConfigurationException, ProcessingException {
    adminClient.realm(REALM_NAME).clients().get(sales2Rep.getId())
            .update(ClientBuilder.edit(sales2Rep).frontchannelLogout(true)
                    .attribute(SamlProtocol.SAML_SINGLE_LOGOUT_SERVICE_URL_POST_ATTRIBUTE, "")
                    .removeAttribute(SamlProtocol.SAML_SINGLE_LOGOUT_SERVICE_URL_REDIRECT_ATTRIBUTE).build());

    Document logoutDoc = prepareLogoutFromSalesAfterLoggingIntoTwoApps();

    samlClient.execute((client, context, strategy) -> {
        HttpUriRequest post = POST.createSamlUnsignedRequest(getAuthServerSamlEndpoint(REALM_NAME), null,
                logoutDoc);/*from  w  w w.ja v  a  2s. c  o  m*/
        CloseableHttpResponse response = client.execute(post, HttpClientContext.create());
        assertThat(response, statusCodeIsHC(Response.Status.OK));
        return response;
    });
}

From source file:com.vuze.plugin.azVPN_Helper.Checker_AirVPN.java

@Override
protected boolean callRPCforPort(InetAddress bindIP, StringBuilder sReply) {
    InetAddress[] resolve = null;
    try {/*from  w w w . j av  a 2  s.  c om*/

        String user = getDefaultUsername();
        String pass = null;
        if (user == null || user.length() == 0) {
            user = config.getPluginStringParameter(PluginConstants.CONFIG_USER);
            pass = new String(config.getPluginByteParameter(PluginConstants.CONFIG_P, new byte[0]), "utf-8");
        } else {
            pass = getPassword();
        }

        if (user == null || user.length() == 0 || pass == null || pass.length() == 0) {
            addReply(sReply, CHAR_WARN, "airvpn.rpc.nocreds");
            return false;
        }

        // If Vuze has a proxy set up (Tools->Options->Connection->Proxy), then
        // we'll need to disable it for the URL
        AEProxySelector selector = AEProxySelectorFactory.getSelector();
        if (selector != null) {
            resolve = SystemDefaultDnsResolver.INSTANCE.resolve(VPN_DOMAIN);

            for (InetAddress address : resolve) {
                selector.setProxy(new InetSocketAddress(address, 443), Proxy.NO_PROXY);
            }
        }

        RequestConfig requestConfig;
        StringBuffer token = new StringBuffer();

        boolean skipLoginPage = false;
        boolean alreadyLoggedIn = false;
        PortInfo[] ports = null;

        if (httpClientContext == null) {
            httpClientContext = HttpClientContext.create();
        } else {
            PluginVPNHelper.log("Have existing context.  Trying to grab port list without logging in.");
            ports = scrapePorts(bindIP, token);
            // assume no token means we aren't logged in
            if (token.length() > 0) {
                PluginVPNHelper.log("Valid ports page. Skipping Login");
                skipLoginPage = true;
                alreadyLoggedIn = true;

                if (ports == null) {
                    addReply(sReply, CHAR_WARN, "airvpn.vpnhelper.rpc.notconnected");
                    return false;
                }
            } else {
                ports = null;
            }
        }

        if (!skipLoginPage) {
            String loginURL = null;
            String authKey = null;

            PluginVPNHelper.log("Getting Login post URL and auth_key");

            HttpGet getLoginPage = new HttpGet(VPN_LOGIN_URL);
            requestConfig = RequestConfig.custom().setLocalAddress(bindIP).setConnectTimeout(15000).build();
            getLoginPage.setConfig(requestConfig);
            getLoginPage.setHeader("User-Agent", USER_AGENT);

            CloseableHttpClient httpClientLoginPage = HttpClients.createDefault();
            CloseableHttpResponse loginPageResponse = httpClientLoginPage.execute(getLoginPage,
                    httpClientContext);

            BufferedReader rd = new BufferedReader(
                    new InputStreamReader(loginPageResponse.getEntity().getContent()));

            Pattern patAuthKey = Pattern.compile(REGEX_AuthKey);

            String line = "";
            while ((line = rd.readLine()) != null) {
                if (line.contains("<form") && line.matches(".*id=['\"]login['\"].*")) {
                    Matcher matcher = Pattern.compile(REGEX_ActionURL).matcher(line);
                    if (matcher.find()) {
                        loginURL = matcher.group(1);
                        if (authKey != null) {
                            break;
                        }
                    }
                }
                Matcher matcherAuthKey = patAuthKey.matcher(line);
                if (matcherAuthKey.find()) {
                    authKey = matcherAuthKey.group(1);
                    if (loginURL != null) {
                        break;
                    }
                }

                if (line.contains("['member_id']") && line.matches(".*parseInt\\s*\\(\\s*[1-9][0-9]*\\s*.*")) {
                    alreadyLoggedIn = true;
                }
            }
            rd.close();

            if (loginURL == null) {
                PluginVPNHelper.log("Could not scrape Login URL.  Using default");
                loginURL = "https://airvpn.org/index.php?app=core&module=global&section=login&do=process";
            }
            if (authKey == null) {
                addReply(sReply, CHAR_WARN, "vpnhelper.rpc.noauthkey");
                return false;
            }

            loginURL = UrlUtils.unescapeXML(loginURL);

            ///////////////////////////////

            if (alreadyLoggedIn) {
                PluginVPNHelper.log("Already Logged In");
            } else {
                PluginVPNHelper.log("Login URL:" + loginURL);
                //https://airvpn.org/index.php?app=core&module=global&section=login&do=process
                //https://airvpn.org/index.php?app=core&module=global&section=login&do=process

                HttpPost httpPostLogin = new HttpPost(loginURL);

                requestConfig = RequestConfig.custom().setLocalAddress(bindIP).setConnectTimeout(15000).build();

                httpPostLogin.setConfig(requestConfig);
                httpPostLogin.setHeader("User-Agent", USER_AGENT);

                CloseableHttpClient httpClient = HttpClients.createDefault();

                List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
                urlParameters.add(new BasicNameValuePair("ips_username", user));
                urlParameters.add(new BasicNameValuePair("ips_password", pass));
                urlParameters.add(new BasicNameValuePair("auth_key", authKey));
                urlParameters.add(new BasicNameValuePair("referer", "http://airvpn.org/"));
                urlParameters.add(new BasicNameValuePair("anonymous", "1"));
                urlParameters.add(new BasicNameValuePair("rememberMe", "1"));

                httpPostLogin.setEntity(new UrlEncodedFormEntity(urlParameters));

                CloseableHttpResponse response = httpClient.execute(httpPostLogin, httpClientContext);

                rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

                line = "";
                while ((line = rd.readLine()) != null) {
                }

                PluginVPNHelper.log("Login Result: " + response.getStatusLine().toString());
            }
        }

        ////////////////////////////

        if (ports == null) {
            ports = scrapePorts(bindIP, token);
            if (ports == null && token.length() > 0) {
                addReply(sReply, CHAR_WARN, "airvpn.vpnhelper.rpc.notconnected");
                return false;
            }
        }

        PluginVPNHelper.log("Found Ports: " + Arrays.toString(ports));

        int existingIndex = ourPortInList(ports);
        if (existingIndex >= 0) {
            addReply(sReply, CHAR_GOOD, "vpnhelper.port.from.rpc.match",
                    new String[] { ports[existingIndex].port });
            return true;
        }

        boolean gotPort = false;

        // There's a limit of 20 ports.  If [0] isn't ours and 20 of them are
        // created, then assume our detection of "ours" is broke and just use
        // the first one
        if (ports != null && ((ports.length > 0 && ports[0].ourBinding) || ports.length == 20)) {
            int port = Integer.parseInt(ports[0].port);
            gotPort = true;

            addReply(sReply, CHAR_GOOD, "vpnhelper.port.from.rpc", new String[] { Integer.toString(port) });

            changePort(port, sReply);
        } else if (ports != null) {
            // create port
            ports = createPort(bindIP, token);
            if (ports.length == 0) {
                // form post should have got the new port, but if it didn't, try
                // reloading the ports page again.
                token.setLength(0);
                ports = scrapePorts(bindIP, token);
            }

            PluginVPNHelper.log("Added a port. Ports: " + Arrays.toString(ports));

            existingIndex = ourPortInList(ports);
            if (existingIndex >= 0) {
                addReply(sReply, CHAR_GOOD, "vpnhelper.port.from.rpc.match",
                        new String[] { ports[existingIndex].port });
                return true;
            }

            if ((ports.length > 0 && ports[0].ourBinding) || ports.length == 20) {
                int port = Integer.parseInt(ports[0].port);
                gotPort = true;

                addReply(sReply, CHAR_GOOD, "vpnhelper.port.from.rpc", new String[] { Integer.toString(port) });

                changePort(port, sReply);
            }

        }

        if (!gotPort) {
            addReply(sReply, CHAR_WARN, "vpnhelper.rpc.no.connect", new String[] { bindIP.toString() });

            return false;
        }
    } catch (Exception e) {
        e.printStackTrace();
        addReply(sReply, CHAR_BAD, "vpnhelper.rpc.no.connect", new String[] { bindIP + ": " + e.getMessage() });

        return false;
    } finally {
        AEProxySelector selector = AEProxySelectorFactory.getSelector();
        if (selector != null && resolve != null) {
            for (InetAddress address : resolve) {
                AEProxySelectorFactory.getSelector().removeProxy(new InetSocketAddress(address, 443));
            }
        }
    }
    return true;
}

From source file:org.sonatype.nexus.testsuite.security.SimpleSessionCookieIT.java

/**
 * Validate Nexus Cookies during Sign-in and Sign-out
 *///w  ww. j  av  a2 s  . co m
private void exerciseCookieSpec(final URL baseUrl) throws Exception {

    // handle cookies like a browser to aid validation
    final CookieSpec spec = new DefaultCookieSpecProvider().create(null);
    final CookieOrigin cookieOrigin = cookieOrigin(baseUrl);
    final CookieStore cookieStore = new BasicCookieStore();
    final CredentialsProvider credProvider = credentialsProvider();
    SetCookie loginCookie;

    try (CloseableHttpClient client = clientBuilder().setDefaultCookieStore(cookieStore)
            .setDefaultCredentialsProvider(credProvider).build()) {

        // 1. login with credentials and get session cookie
        // Set-Cookie: NXSESSIONID=98a766bc-bc33-4b3c-9d9f-d3bb85b0cf00; Path=/; Secure; HttpOnly

        HttpPost loginRequest = new HttpPost(resolveUrl(baseUrl, SESSION_PATH).toURI());
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("username",
                Strings2.encodeBase64(credentials().getUserPrincipal().getName())));
        params.add(new BasicNameValuePair("password", Strings2.encodeBase64(credentials().getPassword())));
        loginRequest.setEntity(new UrlEncodedFormEntity(params));
        withCommonBrowserHeaders(loginRequest);

        try (CloseableHttpResponse response = client.execute(loginRequest, clientContext())) {
            assertThat(response.getStatusLine().getStatusCode(), is(200));
            assertThat("login cookie should have been stored in the cookie store", cookieStore.getCookies(),
                    hasSize(1));
            assertThat("expected session cookie in cookie store", getSessionCookie(cookieStore),
                    notNullValue());

            Header[] setCookieHeaders = response.getHeaders(SET_COOKIE);
            Header sessionCookieHeader = getSessionCookieHeader(setCookieHeaders);

            List<Cookie> sessionCookies = spec.parse(sessionCookieHeader, cookieOrigin);
            loginCookie = (SetCookie) sessionCookies.get(0);
            String headerText = sessionCookieHeader.toString();

            assertCommonSessionCookieAttributes(baseUrl, loginCookie, headerText);
            assertThat(String.format("expecting one cookie parsed from session %s header", SET_COOKIE),
                    sessionCookies, hasSize(1));

            assertThat(String.format(
                    "expecting 2 %s headers for login, one session cookie, one remember me, but got %s",
                    SET_COOKIE, setCookieHeaders), setCookieHeaders, arrayWithSize(2));

            assertThat("login cookie should NOT look like deleteMe cookie", loginCookie.getValue(),
                    not(containsString("deleteMe")));
            assertThat(
                    "login cookie should not have an expiry date - the UA deletes the session cookie when "
                            + "replaced by a new one by same name from the server OR when the UA decides",
                    loginCookie.isPersistent(), is(false));

            assertThat("login session cookie with valid session id should always be marked HttpOnly",
                    headerText, containsString("; HttpOnly"));
        }

        HttpClientContext logoutContext = HttpClientContext.create();
        logoutContext.setCookieStore(cookieStore);

        HttpDelete logoutRequest = new HttpDelete(resolveUrl(baseUrl, SESSION_PATH).toURI());
        withCommonBrowserHeaders(logoutRequest);

        // 2. Logout, sending valid session cookie, no credentials
        // Set-Cookie: NXSESSIONID=deleteMe; Path=/; Max-Age=0; Expires=Sun, 28-Dec-2014 15:59:11 GMT
        try (CloseableHttpResponse response = client.execute(logoutRequest, logoutContext)) {
            assertThat(response.getStatusLine().getStatusCode(), is(200));

            // can't use client CookieStore to examine logout cookie, because the Expires header will prevent it from being
            // added but we can implicitly confirm it expired the existing cookie according to our client
            assertThat("logout cookie should have emptied the cookie store due to expiry date",
                    cookieStore.getCookies(), hasSize(0));

            Header[] setCookieHeaders = response.getHeaders(SET_COOKIE);
            Header sessionCookieHeader = getSessionCookieHeader(setCookieHeaders);
            List<Cookie> sessionCookies = spec.parse(sessionCookieHeader, cookieOrigin);
            SetCookie logoutCookie = (SetCookie) sessionCookies.get(0);
            final String headerText = sessionCookieHeader.toString();

            assertCommonSessionCookieAttributes(baseUrl, logoutCookie, headerText);
            assertThat("expecting one cookie in same Set-Cookie header", sessionCookies, hasSize(1));
            assertThat(String.format(
                    "expecting 2 %s headers for logout, one session cookie delete cookie, one remember me delete cookie, but got %s",
                    SET_COOKIE, setCookieHeaders), setCookieHeaders, arrayWithSize(2));
            assertThat("logout session cookie value should be dummy value", logoutCookie.getValue(),
                    equalTo("deleteMe"));
            assertThat("logout session cookie should be expired to tell browser to delete it",
                    logoutCookie.isExpired(new Date()), is(true));
            assertThat(
                    "technically the presence of an expiry date means the cookie is persistent, but expiry will override",
                    logoutCookie.isPersistent(), is(true));
            assertThat(
                    "logout cookie does not have a real session id value, therefore it does not need to be HttpOnly",
                    headerText, not(containsString("; HttpOnly")));
        }

        // 3. Access a protected resource again using our original login cookie, no credentials, to verify session is dead
        HttpGet loginFailedGet = new HttpGet(resolveUrl(baseUrl, PROTECTED_PATH).toURI());
        cookieStore.addCookie(loginCookie);

        try (CloseableHttpResponse response = client.execute(loginFailedGet, HttpClientContext.create())) {
            assertThat("expected dead login session cookie to not authenticate",
                    response.getStatusLine().getStatusCode(), is(401));
            Header[] setCookieHeaders = response.getHeaders(SET_COOKIE);
            assertThat("expecting no session cookie since login was unsuccessful",
                    getSessionCookieHeader(setCookieHeaders), nullValue());
            assertThat("expecting no cookies since login was unsuccessful", setCookieHeaders, arrayWithSize(0));
        }
    }
}

From source file:com.mirth.connect.client.core.ConnectServiceUtil.java

public static boolean sendStatistics(String serverId, String mirthVersion, boolean server, String data,
        String[] protocols, String[] cipherSuites) {
    if (data == null) {
        return false;
    }/* w  w  w .  j  a  v  a2  s . com*/

    boolean isSent = false;

    CloseableHttpClient client = null;
    HttpPost post = new HttpPost();
    CloseableHttpResponse response = null;
    NameValuePair[] params = { new BasicNameValuePair("serverId", serverId),
            new BasicNameValuePair("version", mirthVersion),
            new BasicNameValuePair("server", Boolean.toString(server)), new BasicNameValuePair("data", data) };
    RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(TIMEOUT)
            .setConnectionRequestTimeout(TIMEOUT).setSocketTimeout(TIMEOUT).build();

    post.setURI(URI.create(URL_CONNECT_SERVER + URL_USAGE_SERVLET));
    post.setEntity(new UrlEncodedFormEntity(Arrays.asList(params), Charset.forName("UTF-8")));

    try {
        HttpClientContext postContext = HttpClientContext.create();
        postContext.setRequestConfig(requestConfig);
        client = getClient(protocols, cipherSuites);
        response = client.execute(post, postContext);
        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();
        if ((statusCode == HttpStatus.SC_OK)) {
            isSent = true;
        }
    } catch (Exception e) {
    } finally {
        HttpClientUtils.closeQuietly(response);
        HttpClientUtils.closeQuietly(client);
    }
    return isSent;
}

From source file:org.cruk.genologics.api.GenologicsAPIPaginatedBatchTest.java

@Test
public void testMultipageFetchListSome() throws Exception {
    // Note - reusing the files from above means that the subsequent pages
    // with have "&projectname=Run+1030" as part of the URL. This can be ignored
    // for this test.

    // Part one - mock the rest template to return the already parsed objects.

    RestOperations restMock = EasyMock.createStrictMock(RestOperations.class);

    EasyMock.expect(restMock.getForEntity("http://lims.cri.camres.org:8080/api/v2/samples?start-index=0",
            Samples.class)).andReturn(response1).once();
    EasyMock.expect(restMock.getForEntity(
            new URI("http://lims.cri.camres.org:8080/api/v2/samples?start-index=500&projectname=Run+1030"),
            Samples.class)).andReturn(response2).once();
    // Should get as far as response 3 in this test.

    GenologicsAPIImpl localApi = context.getBean("genologicsAPI", GenologicsAPIImpl.class);
    localApi.setRestClient(restMock);/*from  ww w.ja  v a2s  .c om*/
    localApi.setServer(new URL("http://lims.cri.camres.org:8080"));

    EasyMock.replay(restMock);

    List<LimsLink<Sample>> links = localApi.listSome(Sample.class, 0, 750);

    EasyMock.verify(restMock);

    assertEquals("Expected 750 sample links returned", 750, links.size());

    // Part two - mock the HTTP client and request factory to ensure that the URIs are
    // being presented as expected without character cludging.

    HttpContext httpContext = HttpClientContext.create();
    HttpClient mockHttpClient = EasyMock.createMock(HttpClient.class);
    ClientHttpRequestFactory mockRequestFactory = EasyMock.createMock(ClientHttpRequestFactory.class);

    RestTemplate restTemplate = context.getBean("genologicsRestTemplate", RestTemplate.class);
    restTemplate.setRequestFactory(mockRequestFactory);

    localApi.setHttpClient(mockHttpClient);
    localApi.setRestClient(restTemplate);

    URI pageOne = new URI("http://lims.cri.camres.org:8080/api/v2/samples?start-index=0");
    URI pageTwo = new URI(
            "http://lims.cri.camres.org:8080/api/v2/samples?start-index=500&projectname=Run+1030");

    HttpGet getOne = new HttpGet(pageOne);
    HttpGet getTwo = new HttpGet(pageTwo);

    HttpResponse responseOne = createMultipageFetchResponse(pageFiles[0]);
    HttpResponse responseTwo = createMultipageFetchResponse(pageFiles[1]);

    Class<?> requestClass = Class.forName("org.springframework.http.client.HttpComponentsClientHttpRequest");
    Constructor<?> constructor = requestClass.getDeclaredConstructor(HttpClient.class, HttpUriRequest.class,
            HttpContext.class);
    constructor.setAccessible(true);

    ClientHttpRequest reqOne = (ClientHttpRequest) constructor.newInstance(mockHttpClient, getOne, httpContext);
    ClientHttpRequest reqTwo = (ClientHttpRequest) constructor.newInstance(mockHttpClient, getTwo, httpContext);

    EasyMock.expect(mockRequestFactory.createRequest(pageOne, HttpMethod.GET)).andReturn(reqOne).once();
    EasyMock.expect(mockRequestFactory.createRequest(pageTwo, HttpMethod.GET)).andReturn(reqTwo).once();

    EasyMock.expect(mockHttpClient.execute(getOne, httpContext)).andReturn(responseOne).once();
    EasyMock.expect(mockHttpClient.execute(getTwo, httpContext)).andReturn(responseTwo).once();

    EasyMock.replay(mockHttpClient, mockRequestFactory);

    links = localApi.listSome(Sample.class, 0, 750);

    EasyMock.verify(mockHttpClient, mockRequestFactory);

    assertEquals("Expected 750 sample links returned", 750, links.size());
}

From source file:com.cloudbees.jenkins.plugins.bitbucket.client.BitbucketCloudApiClient.java

public BitbucketCloudApiClient(boolean enableCache, int teamCacheDuration, int repositoriesCacheDuration,
        String owner, String repositoryName, BitbucketAuthenticator authenticator) {
    this.authenticator = authenticator;
    this.owner = owner;
    this.repositoryName = repositoryName;
    this.enableCache = enableCache;
    if (enableCache) {
        cachedTeam.setExpireDuration(teamCacheDuration, MINUTES);
        cachedRepositories.setExpireDuration(repositoriesCacheDuration, MINUTES);
    }/*from  ww  w  .java2 s .c  o  m*/

    // Create Http client
    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
    httpClientBuilder.setConnectionManager(connectionManager);
    httpClientBuilder.setConnectionManagerShared(true);

    if (authenticator != null) {
        authenticator.configureBuilder(httpClientBuilder);

        context = HttpClientContext.create();
        authenticator.configureContext(context, API_HOST);
    }

    setClientProxyParams("bitbucket.org", httpClientBuilder);

    this.client = httpClientBuilder.build();
}

From source file:sachin.spider.SpiderConfig.java

private String handleRedirect(String url) {
    try {//w  w w  .ja v a  2s . c  o m
        HttpGet httpget = new HttpGet(url);
        RequestConfig requestConfig = RequestConfig.custom().setRedirectsEnabled(true)
                .setCircularRedirectsAllowed(true).setRelativeRedirectsAllowed(true)
                .setConnectionRequestTimeout(getConnectionRequestTimeout()).setSocketTimeout(getSocketTimeout())
                .setConnectTimeout(getConnectionTimeout()).build();
        httpget.setConfig(requestConfig);
        HttpClientBuilder builder = HttpClientBuilder.create();
        builder.setUserAgent(getUserAgentString());
        if (isAuthenticate()) {
            CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
            credentialsProvider.setCredentials(AuthScope.ANY,
                    new UsernamePasswordCredentials(getUsername(), getPassword()));
            builder.setDefaultCredentialsProvider(credentialsProvider);
        }
        CloseableHttpClient httpclient = builder.build();
        HttpClientContext context = HttpClientContext.create();
        CloseableHttpResponse response = httpclient.execute(httpget, context);
        HttpHost target = context.getTargetHost();
        List<URI> redirectLocations = context.getRedirectLocations();
        URI location = URIUtils.resolve(httpget.getURI(), target, redirectLocations);
        url = location.toString();
        EntityUtils.consumeQuietly(response.getEntity());
        HttpClientUtils.closeQuietly(response);
    } catch (IOException | URISyntaxException ex) {
        Logger.getLogger(SpiderConfig.class.getName()).log(Level.SEVERE, null, ex);
        System.err.println(url);
    }
    return url;
}

From source file:com.github.tomakehurst.wiremock.testsupport.WireMockTestClient.java

public WireMockResponse getWithPreemptiveCredentials(String url, int port, String username, String password) {
    HttpHost target = new HttpHost("localhost", port);
    HttpClient httpClient = httpClientWithPreemptiveAuth(target, username, password);

    AuthCache authCache = new BasicAuthCache();
    BasicScheme basicAuth = new BasicScheme();
    authCache.put(target, basicAuth);//w  w w. ja va  2s  . c  o m
    HttpClientContext localContext = HttpClientContext.create();
    localContext.setAuthCache(authCache);

    try {
        HttpGet httpget = new HttpGet(url);
        HttpResponse response = httpClient.execute(target, httpget, localContext);
        return new WireMockResponse(response);
    } catch (IOException e) {
        return throwUnchecked(e, WireMockResponse.class);
    }
}