I tried this but fails

CloseableHttpClient client = HttpClientBuilder.create().addInterceptorLast( 
                        new HttpRequestInterceptor() {
                            @Override
                            public void process(final HttpRequest request, 
final HttpContext context)
                                    throws HttpException, IOException {
                                final String PROXY_CONN_DIRECTIVE = 
"Proxy-Connection";
                                Args.notNull(request, "HTTP request");

                                final String method = 
request.getRequestLine().getMethod();
                                if (method.equalsIgnoreCase("CONNECT")) 
                                {
                                    request.setHeader(PROXY_CONN_DIRECTIVE, 
org.apache.http.protocol.HTTP.CONN_KEEP_ALIVE);
                                    request.setHeader("X-Forwarded-For", 
"10.52.106.89");
                                    return;
                                }
                            }
                        }   
                )
                .setConnectionManager(connectionManager)
                .setRedirectStrategy(new LaxRedirectStrategy())
//                //.setDefaultHeaders(defaultHeaders)
//                //.setRoutePlanner(routePlanner)
                .build();

What do you thinks ?

Omar Khateeb | QA Engineer, IDA & DLP
Check Point Software Technologies | | om...@checkpoint.com


-----Original Message-----
From: Omar Alkhateeb [mailto:om...@checkpoint.com] 
Sent: Thursday, January 10, 2019 3:16 PM
To: HttpComponents Project
Subject: RE: Http CONNECT Method with XFF Header

I found this class, but can't edit because it is .class binary file

public class RequestClientConnControl implements HttpRequestInterceptor {

    private final Log log = LogFactory.getLog(getClass());

    private static final String PROXY_CONN_DIRECTIVE = "Proxy-Connection";

    public RequestClientConnControl() {
        super();
    }

    public void process(final HttpRequest request, final HttpContext context)
            throws HttpException, IOException {
        Args.notNull(request, "HTTP request");

        final String method = request.getRequestLine().getMethod();
        if (method.equalsIgnoreCase("CONNECT")) {
            request.setHeader(PROXY_CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE);
            return;
        }

Omar Khateeb | QA Engineer, IDA & DLP
Check Point Software Technologies | | om...@checkpoint.com


-----Original Message-----
From: Omar Alkhateeb [mailto:om...@checkpoint.com] 
Sent: Thursday, January 10, 2019 3:15 PM
To: HttpComponents Project
Subject: RE: Http CONNECT Method with XFF Header

Hi Oleg,

Thanks for the response, Can you show me example of the steps you guided me, I 
can't find a way

Omar Khateeb | QA Engineer, IDA & DLP
Check Point Software Technologies | | om...@checkpoint.com

-----Original Message-----
From: Oleg Kalnichevski [mailto:ol...@apache.org] 
Sent: Wednesday, January 09, 2019 6:38 PM
To: HttpComponents Project
Subject: Re: Http CONNECT Method with XFF Header

On Wed, 2019-01-09 at 14:54 +0000, Omar Alkhateeb wrote:
> Hi All,
> 
> As I noticed, there is no Class for HttpConnect method
> 
> I need to add specific Http Header on CONNECT which is called X-For-
> Forward
> 
> I can successfully add XFF Header on HttpGet Request using :
> 
> HttpClientContext context = HttpClientContext.create();
> HttpGet httpget = new HttpGet(URL);
> RequestConfig requestConfig =
> RequestConfig.copy(defaultRequestConfig)
>         .setProxy(new HttpHost(Proxy, Port))
>         .build();
> httpget.setConfig(requestConfig);
> httpget.setHeader("X-Forwarded-For", XFFHeader);
> httpget.setHeader(new BasicHeader("Prama", "no-cache"));
> httpget.setHeader(new BasicHeader("Cache-Control", "no-cache"));
> httpget.setHeader("X-Requested-With", "XMLHttpRequest");
> httpget.setHeader(HttpHeaders.USER_AGENT,"Mozilla/5.0 (Windows NT
> 10.0; Win64; x64) "
> + "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100
> Safari/537.36 Chrome/69.0.3497.100 "
> + "Apache-HttpClient/4.5.3 (Java/1.8.0_141)");
> 
> Is there a way to Add the same Header to CONNECT method ?
> 

It will not be pretty with HttpClient 4.5 but it can be done.

1. Subclass HttpClientBuilder

2. override #createMainExec method

https://github.com/apache/httpcomponents-client/blob/4.5.x/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java#L889
 

3. Hijack proxyHttpProcessor

Hope this helps

Oleg


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org


Email secured by Check Point
B�KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKCB��[��X��ܚX�KK[XZ[
�]�][��X��ܚX�P˘\X�K�ܙ�B��܈Y][ۘ[��[X[��K[XZ[
�]�Z[˘\X�K�ܙ�B�

Reply via email to