hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yann Blazart <yann.blaz...@bycode.fr>
Subject Re: Need Help with ProxyClient (httpClient 4.2.1)
Date Mon, 20 Aug 2012 20:31:25 GMT
Sorry lot of work today. Will try tomorrow morning
Le 20 août 2012 22:10, "kim young ill" <khiemu@googlemail.com> a écrit :

> did u check if  the grizzly-connector pushes back the data ?
>
> On Thu, Aug 16, 2012 at 10:10 AM, Yann Blazart <yann.blazart@bycode.fr
> >wrote:
>
> > Hi !
> >
> > I'm trying to implements my own 'cntlm' local proxy, my goal is to have a
> > centralized access for Java program, safari, and other, acessing to
> > internet thought the entreprise proxy.
> >
> > Well, I'm using grizzly to listen http request, and httpclient to pass
> the
> > ntlm proxy, everything is ok for normal http connections.
> >
> > But, when my browser have to access to https, this is another story.
> Well :
> >
> > I have to implements the CONNECT method, so I'm using the following code
> :
> >
> >              HttpHost proxyHost = new HttpHost("proxy",8080);
> >              HttpHost target = new HttpHost("mail.google.com",443);
> >              Credentials credentials = new
> > UsernamePasswordCredentials("toto", "xb45");
> >              ProxyClient proxyClient = new ProxyClient();
> >              proxyClient.getAuthSchemeRegistry().register("ntlm", new
> > NTLMSchemeFactory());
> >              Socket socket = proxyClient.tunnel(proxyHost, target,
> > credentials);
> >              final InputStream in = httpRequest.getInputStream();
> >              final OutputStream out = httpResponse.getOutputStream();
> >              out.write(("HTTP/1.0 200 Connection
> > etablished \r\n\r\n").getBytes());
> >              out.flush();
> >              System.out.println("200 sended ");
> >             Thread tread = new Thread(new Runnable() {
> >                 @Override
> >                 public void run() {
> >                     try {
> >                         System.out.println("read from socket");
> >                         int l = IOUtils.copy(secSocket.getInputStream(),
> > out);
> >                         System.out.println("    --> stop copy from socket
> > to out : " + l);
> >                     } catch (IOException ex) {
> >                         throw new RuntimeException(ex);
> >                     }
> >                 }
> >             });
> >             Thread twrite = new Thread(new Runnable() {
> >                 @Override
> >                 public void run() {
> >                     try {
> >                         System.out.println("Write to socket");
> >                         int l = IOUtils.copy(in,
> > secSocket.getOutputStream());
> >                         System.out.println("    --> stop copy from in to
> > socket  : " + l);
> >                     } catch (IOException ex) {
> >                         throw new RuntimeException(ex);
> >                     }
> >                 }
> >             });
> >
> >             tread.start();
> >             twrite.start();
> >             tread.join();
> >             twrite.join();
> >
> >
> > Well, with this code, using wireshark, I can see that Proxyclient is
> > negociating well the NTLM session with the entreprise proxy, but my
> browser
> > hang...
> > I saw this type of code, making a simple bridge between socket and http
> > stream in a jetty proxy serlvet example, but this not working....
> >
> > Anyone can help me ?
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message