Example usage for org.apache.http.protocol HttpCoreContext HTTP_TARGET_HOST

List of usage examples for org.apache.http.protocol HttpCoreContext HTTP_TARGET_HOST

Introduction

In this page you can find the example usage for org.apache.http.protocol HttpCoreContext HTTP_TARGET_HOST.

Prototype

String HTTP_TARGET_HOST

To view the source code for org.apache.http.protocol HttpCoreContext HTTP_TARGET_HOST.

Click Source Link

Usage

From source file:com.github.avarabyeu.restendpoint.http.PreemptiveAuthInterceptor.java

/**
 * Adds provided auth scheme to the client if there are no another provided
 * auth schemes/*from  w w w . ja  v  a2  s  .c o m*/
 */
@Override
public final void process(final HttpRequest request, final HttpContext context)
        throws HttpException, IOException {

    AuthState authState = (AuthState) context.getAttribute(HttpClientContext.TARGET_AUTH_STATE);
    if (authState.getAuthScheme() == null) {

        HttpHost targetHost = (HttpHost) context.getAttribute(HttpCoreContext.HTTP_TARGET_HOST);
        AuthCache authCache = new BasicAuthCache();
        authCache.put(targetHost, new BasicScheme());
        context.setAttribute(HttpClientContext.AUTH_CACHE, authCache);
    }
}

From source file:org.aludratest.service.gui.web.selenium.httpproxy.ProxyHandler.java

public void handle(HttpRequest request, HttpResponse response, HttpContext context)
        throws HttpException, IOException {

    HttpClientConnection conn = (HttpClientConnection) context.getAttribute(HTTP_OUT_CONN);

    context.setAttribute(HttpCoreContext.HTTP_CONNECTION, conn);
    context.setAttribute(HttpCoreContext.HTTP_TARGET_HOST, this.target);

    // Remove hop-by-hop headers
    /*request.removeHeaders(HTTP.CONTENT_LEN);
    request.removeHeaders(HTTP.TRANSFER_ENCODING);
    request.removeHeaders(HTTP.CONN_DIRECTIVE);
    request.removeHeaders("Keep-Alive");
    request.removeHeaders("Proxy-Authenticate");
    request.removeHeaders("TE");//  w w w . j  a v a  2s .  c  o m
    request.removeHeaders("Trailers");
    request.removeHeaders("Upgrade");*/

    this.httpexecutor.preProcess(request, this.httpproc, context);

    LOGGER.debug(">> Request URI: " + request.getRequestLine().getUri());
    if (LOGGER.isTraceEnabled()) {
        for (Header header : request.getAllHeaders()) {
            LOGGER.trace(header.toString());
        }
    }

    HttpResponse targetResponse = this.httpexecutor.execute(request, conn, context);
    this.httpexecutor.postProcess(response, this.httpproc, context);

    // Remove hop-by-hop headers
    /*
    targetResponse.removeHeaders(HTTP.CONTENT_LEN);
    targetResponse.removeHeaders(HTTP.TRANSFER_ENCODING);
    targetResponse.removeHeaders(HTTP.CONN_DIRECTIVE);
    targetResponse.removeHeaders("Keep-Alive");
    targetResponse.removeHeaders("TE");
    targetResponse.removeHeaders("Trailers");
    targetResponse.removeHeaders("Upgrade");
    */
    response.setStatusLine(targetResponse.getStatusLine());
    response.setHeaders(targetResponse.getAllHeaders());
    response.setEntity(targetResponse.getEntity());

    LOGGER.debug("<< Response: " + response.getStatusLine());

    boolean keepalive = this.connStrategy.keepAlive(response, context);
    context.setAttribute(HTTP_CONN_KEEPALIVE, Boolean.valueOf(keepalive));
}

From source file:com.norconex.collector.http.crawler.TargetURLRedirectStrategy.java

public boolean isRedirected(final HttpRequest request, final HttpResponse response, final HttpContext context)
        throws ProtocolException {
    boolean isRedirected = nested.isRedirected(request, response, context);
    HttpUriRequest currentReq = (HttpUriRequest) context.getAttribute(HttpCoreContext.HTTP_REQUEST);
    HttpHost currentHost = (HttpHost) context.getAttribute(HttpCoreContext.HTTP_TARGET_HOST);
    if (!isRedirected) {
        if (currentReq.getURI().isAbsolute()) {
            CURRENT_URL.set(currentReq.getURI().toString());
        } else {/*from  w  w  w.j av  a  2 s .  c  o  m*/
            CURRENT_URL.set(currentHost.toURI() + currentReq.getURI());
        }
    }
    return isRedirected;
}

From source file:ch.cyberduck.core.http.HttpConnectionPoolBuilder.java

public HttpConnectionPoolBuilder(final Host host, final ThreadLocalHostnameDelegatingTrustManager trust,
        final X509KeyManager key, final ProxyFinder proxy) {
    this(host, new PlainConnectionSocketFactory() {
        @Override//from   w  ww .j a v  a2 s  . c  o  m
        public Socket createSocket(final HttpContext context) throws IOException {
            // Return socket factory with disabled support for HTTP tunneling as provided internally
            return new ProxySocketFactory(host.getProtocol(), new TrustManagerHostnameCallback() {
                @Override
                public String getTarget() {
                    return context.getAttribute(HttpCoreContext.HTTP_TARGET_HOST).toString();
                }
            }, proxy).disable(Proxy.Type.HTTP).disable(Proxy.Type.HTTPS).createSocket();
        }
    }, new SSLConnectionSocketFactory(new CustomTrustSSLProtocolSocketFactory(trust, key),
            new DisabledX509HostnameVerifier()) {
        @Override
        public Socket createSocket(final HttpContext context) throws IOException {
            return new ProxySocketFactory(host.getProtocol(), new TrustManagerHostnameCallback() {
                @Override
                public String getTarget() {
                    return context.getAttribute(HttpCoreContext.HTTP_TARGET_HOST).toString();
                }
            }, proxy).disable(Proxy.Type.HTTP).disable(Proxy.Type.HTTPS).createSocket();
        }

        @Override
        public Socket connectSocket(final int connectTimeout, final Socket socket, final HttpHost host,
                final InetSocketAddress remoteAddress, final InetSocketAddress localAddress,
                final HttpContext context) throws IOException {
            trust.setTarget(remoteAddress.getHostName());
            return super.connectSocket(connectTimeout, socket, host, remoteAddress, localAddress, context);
        }
    }, proxy);
}

From source file:org.callimachusproject.client.HttpAuthenticator.java

public boolean needAuthentication(final HttpRoute route, final HttpRequest request, final HttpResponse response,
        final HttpContext context) throws HttpException, IOException {
    final AuthState targetAuthState = getTargetAuthState(context);
    final AuthState proxyAuthState = getProxyAuthState(context);
    HttpHost target = (HttpHost) context.getAttribute(HttpCoreContext.HTTP_TARGET_HOST);
    if (target == null) {
        target = route.getTargetHost();/*from   w  w  w.  jav  a 2  s.  c o m*/
    }
    HttpHost proxy = route.getProxyHost();
    if (this.needAuthentication(target, proxy, targetAuthState, proxyAuthState, response, context)) {
        // discard previous auth headers
        request.removeHeaders(AUTH.WWW_AUTH_RESP);
        request.removeHeaders(AUTH.PROXY_AUTH_RESP);
        return true;
    } else {
        return false;
    }
}

From source file:com.norconex.collector.http.redirect.impl.GenericRedirectURLProvider.java

@Override
public String provideRedirectURL(HttpRequest request, HttpResponse response, HttpContext context) {
    HttpRequest currentReq = (HttpRequest) context.getAttribute(HttpCoreContext.HTTP_REQUEST);
    HttpHost currentHost = (HttpHost) context.getAttribute(HttpCoreContext.HTTP_TARGET_HOST);

    String originalURL = toAbsoluteURI(currentHost, currentReq);

    //--- Location ---
    Header hl = response.getLastHeader(HttpHeaders.LOCATION);
    if (hl == null) {
        //TODO should throw exception instead?
        LOG.error("Redirect detected to a null Location for: " + toAbsoluteURI(currentHost, currentReq));
        return null;
    }//from   www . j a v  a2 s.  c  o  m
    String redirectLocation = hl.getValue();

    //--- Charset ---
    String charset = null;
    Header hc = response.getLastHeader("Content-Type");
    if (hc != null) {
        String contentType = hc.getValue();
        if (contentType.contains(";")) {
            charset = StringUtils.substringAfterLast(contentType, "charset=");
        }
    }
    if (StringUtils.isBlank(charset)) {
        charset = fallbackCharset;
    }

    //--- Build/fix redirect URL ---
    String targetURL = HttpURL.toAbsolute(originalURL, redirectLocation);
    targetURL = resolveRedirectURL(targetURL, charset);

    if (LOG.isDebugEnabled()) {
        LOG.debug("URL redirect: " + originalURL + " -> " + targetURL);
    }
    return targetURL;
}

From source file:fi.okm.mpass.shibboleth.monitor.FormPostTargetResolver.java

/** {@inheritDoc} */
public SequenceStep resolve(final HttpContext context, final SequenceStep startingStep)
        throws ResponseValidatorException {
    if (parameters != null) {
        log.debug("Adding the step parameters {}", parameters);
        for (final NameValuePair parameter : parameters) {
            startingStep.getParameters().add(parameter);
        }//from ww w .  j a v a2s .  c  o m
    }
    final SequenceResponse response = resolveStep(context, startingStep, isFollowRedirects());
    final String redirectUrl = getHeaderValue(response.getHeaders(), "Location");
    if (!isFollowRedirects() && redirectUrl != null) {
        final SequenceStep resultStep = new SequenceStep();
        resultStep.setUrl(completeUrl(context, redirectUrl));
        return resultStep;
    }
    final String result = response.getResponse();
    if (StringSupport.trimOrNull(result) == null) {
        throw new ResponseValidatorException("The response is empty!");
    }
    final SequenceStep resultStep = initResultStep();
    final List<NameValuePair> resultParameters = new ArrayList<>();
    final String action = getValue(result, "action");
    log.debug("Parsed action {}", action);
    for (final String item : outputParameters) {
        final String value = getParamValue(result, item);
        if (value != null) {
            resultParameters.add(new BasicNameValuePair(item, StringEscapeUtils.unescapeHtml(value)));
        }
    }
    if (action != null) {
        final String url = action.replaceAll("&#x3a;", ":").replaceAll("&#x2f;", "/");
        resultStep.setUrl(url);
        if (!url.startsWith("http")) {
            final HttpHost target = (HttpHost) context.getAttribute(HttpCoreContext.HTTP_TARGET_HOST);
            resultStep.setUrl(
                    target.getSchemeName() + "://" + target.getHostName() + ":" + target.getPort() + url);
        } else {
            resultStep.setUrl(url);
        }
    }
    if (resultParameters.size() > 0) {
        resultStep.setParameters(resultParameters);
    }
    return resultStep;
}

From source file:mobi.jenkinsci.alm.assembla.client.AssemblaClient.java

private URL getLatestRedirectedUrl() {
    try {/* ww w  . j  a  v a  2s.  com*/
        final HttpRequest request = (HttpRequest) httpContext.getAttribute(HttpCoreContext.HTTP_REQUEST);
        final HttpHost host = (HttpHost) httpContext.getAttribute(HttpCoreContext.HTTP_TARGET_HOST);
        if (host.getPort() <= 0) {
            return new URL(host.getSchemeName(), host.getHostName(), request.getRequestLine().getUri());
        } else {
            return new URL(host.getSchemeName(), host.getHostName(), host.getPort(),
                    request.getRequestLine().getUri());
        }
    } catch (final MalformedURLException e) {
        throw new IllegalArgumentException("Cannot get last redirected URL from HTTP Context", e);
    }
}

From source file:com.ittm_solutions.ipacore.IpaApi.java

/**
 * Returns the final URI in a redirect chain of a request.
 *
 * @param context//from  w  w w  . j a  v a2 s. com
 *            client context as returned by {@code clientContext}
 * @return URI
 */
private static URI currentRedirectUri(HttpClientContext context) {
    HttpUriRequest currentReq = (HttpUriRequest) context.getAttribute(HttpCoreContext.HTTP_REQUEST);
    HttpHost currentHost = (HttpHost) context.getAttribute(HttpCoreContext.HTTP_TARGET_HOST);
    URI uri = null;
    try {
        uri = ((currentReq.getURI().isAbsolute()) ? currentReq.getURI()
                : (new URI(currentHost.toURI() + currentReq.getURI())));
    } catch (URISyntaxException e) {
        // this should never happen
        throw new RuntimeException(e);
    }
    return uri;
}

From source file:org.wildfly.camel.test.olingo4.Olingo4IntegrationTest.java

private String getRealServiceUrl(String baseUrl) throws ClientProtocolException, IOException {
    CloseableHttpClient httpclient = HttpClients.createDefault();
    HttpGet httpGet = new HttpGet(baseUrl);
    HttpContext httpContext = new BasicHttpContext();
    httpclient.execute(httpGet, httpContext);
    HttpUriRequest currentReq = (HttpUriRequest) httpContext.getAttribute(HttpCoreContext.HTTP_REQUEST);
    HttpHost currentHost = (HttpHost) httpContext.getAttribute(HttpCoreContext.HTTP_TARGET_HOST);
    String currentUrl = (currentReq.getURI().isAbsolute()) ? currentReq.getURI().toString()
            : (currentHost.toURI() + currentReq.getURI());

    return currentUrl;
}