You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Fabien Guironnet <fg...@free.fr> on 2003/04/24 20:19:04 UTC

NTLM Proxy Authentication : still receiving 407

  Hello,

I'm trying to authenticate with an NTLM Proxy server (SQUID 2.5), but I 
still get the error message :
24 avr. 2003 19:39:23 org.apache.commons.httpclient.HttpMethodBase 
processAuthenticationResponse
INFO: Already tried to authenticate to 
"www.google.com#TlRMTVNTUAACAAAABAAEACgAAACCgkEAu3QkmX3Fo24AAAAAAAAAAExZT04=" 
but still receiving 407.

I don't think the problem come from Squid because I can use IE and NTLM 
Authorization Proxy Server 0.9.7 (Python) from Dmitry A. Rozmanov.
I've tested the 3 NTLM messages generated by HTTPClient (with NTLM 
Authorization Proxy Server) and they seems to be OK.
Can the problem come from a connection that isn't keeped alive? or I 
don't use the HTTPClient correctly?

Here is my code (I've tried HTTPClient package 2.0 Alpha 3 (20030225) 
and the nightly source drop from 20030423) :
///////////////////////// BEGIN ///////////////////////////////

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
import java.io.IOException;

public class Test{

    public static void main(String[] arg) {   
        HttpState state = new HttpState();
        HttpClient client = new HttpClient();
        NTCredentials cred = new NTCredentials("nom_utilisateur", 
"mot_passe", "192.168.0.1", "DOMAINE");
        HostConfiguration host = new HostConfiguration();
        HttpMethod method = new GetMethod();
       
        host.setProxy("192.168.0.2", 3128);
        host.setHost("www.google.com", 80, "http");
        client.setHostConfiguration(host);
        client.getState().setProxyCredentials(null, cred);
               
        try {
            client.executeMethod(method);
            System.out.println(method.getStatusCode() + "\n" + 
method.getResponseBodyAsString());
        } catch (IOException e) {
            System.out.println("IOException : " + e.getMessage());
            return;
        }
    }
}

/////////////////////////////// END /////////////////////////////////



Thanks for your help!

    Fabien


Re: NTLM Proxy Authentication : still receiving 407

Posted by Oleg Kalnichevski <o....@dplanet.ch>.
Fabien,
I have an impression that most of HttpClient developers, like me, tend
to shun away from Microsoft stuff. As a result NTLM is a bit of a gray
area here. There's only one person who actively develops and supports
NTLM authentication scheme - Adrian Sutton. You are at his mercy. 

I fear it is proxy logic that is at fault here. I'll try to reproduce
the problem tomorrow when I get to the office. No promised given,
though.

Cheers

Oleg


On Thu, 2003-04-24 at 20:19, Fabien Guironnet wrote:
>   Hello,
> 
> I'm trying to authenticate with an NTLM Proxy server (SQUID 2.5), but I 
> still get the error message :
> 24 avr. 2003 19:39:23 org.apache.commons.httpclient.HttpMethodBase 
> processAuthenticationResponse
> INFO: Already tried to authenticate to 
> "www.google.com#TlRMTVNTUAACAAAABAAEACgAAACCgkEAu3QkmX3Fo24AAAAAAAAAAExZT04=" 
> but still receiving 407.
> 
> I don't think the problem come from Squid because I can use IE and NTLM 
> Authorization Proxy Server 0.9.7 (Python) from Dmitry A. Rozmanov.
> I've tested the 3 NTLM messages generated by HTTPClient (with NTLM 
> Authorization Proxy Server) and they seems to be OK.
> Can the problem come from a connection that isn't keeped alive? or I 
> don't use the HTTPClient correctly?
> 
> Here is my code (I've tried HTTPClient package 2.0 Alpha 3 (20030225) 
> and the nightly source drop from 20030423) :
> ///////////////////////// BEGIN ///////////////////////////////
> 
> import org.apache.commons.httpclient.*;
> import org.apache.commons.httpclient.methods.*;
> import java.io.IOException;
> 
> public class Test{
> 
>     public static void main(String[] arg) {   
>         HttpState state = new HttpState();
>         HttpClient client = new HttpClient();
>         NTCredentials cred = new NTCredentials("nom_utilisateur", 
> "mot_passe", "192.168.0.1", "DOMAINE");
>         HostConfiguration host = new HostConfiguration();
>         HttpMethod method = new GetMethod();
>        
>         host.setProxy("192.168.0.2", 3128);
>         host.setHost("www.google.com", 80, "http");
>         client.setHostConfiguration(host);
>         client.getState().setProxyCredentials(null, cred);
>                
>         try {
>             client.executeMethod(method);
>             System.out.println(method.getStatusCode() + "\n" + 
> method.getResponseBodyAsString());
>         } catch (IOException e) {
>             System.out.println("IOException : " + e.getMessage());
>             return;
>         }
>     }
> }
> 
> /////////////////////////////// END /////////////////////////////////
> 
> 
> 
> Thanks for your help!
> 
>     Fabien
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
> 


Re: NTLM Proxy Authentication : still receiving 407

Posted by Oleg Kalnichevski <o....@dplanet.ch>.
Fabien, 

Could you also attach the log to the bug report?

Oleg



Re: NTLM Proxy Authentication : still receiving 407

Posted by Oleg Kalnichevski <o....@dplanet.ch>.
Adrian,
I had to dig into the problem of squid HTTP/1.1 spec compliance when
dealing with 'expect: 100-continue' handshake. The conclusion I had
reached based on various sources was that SQUID was a HTTP/1.0 proxy
with a partial support for HTTP/1.1 compliant agents. As such squid
can't handle a lot of HTTP/1.1 features or can't do it right 

> 
> That's just not funny - I spent all last week trying to fix our Windows 
> server and get the domain and exchange back up and running. :(  All 
> that effort just so we have a calendar integrated into our email 
> client... sigh.
> 

Oh. Just do not give me an excuse to start bitching about Microsoft. I
would not be able to stop. I am a Microsoft certified this and Microsoft
certified that, i am qualified to tell how crappy their stuff is :-(


> BTW, to get NTLM authentication into your squid cache you'll want to 
> look at http://squid.sourceforge.net/ntlm/ it appears the NTLM support 
> is a separate branch.
> 

I have NTLM support already compiled in into the version of squid that
came with my Redhat 9 distro. I just have to make it to the office.

cheers

Oleg


Re: NTLM Proxy Authentication : still receiving 407

Posted by Adrian Sutton <ad...@intencha.com>.
On Saturday, April 26, 2003, at 10:03  PM, Oleg Kalnichevski wrote:

> Adrian
> I already have squid installed on my Linux notebook. That would not be 
> a
> problem. I just do not have an NT primary domain controller at home.
> Luckily for me, fridges still run without one. Rumors have it that
> Microsoft is working hard on a new operating system for refrigerators
> that may require Windows 2003 server to be setup on the LAN. I'd have 
> to
> ask my girlfriend, who happened to be the sysadmin in my household, to
> grand me 'beer access rights'.

That's just not funny - I spent all last week trying to fix our Windows 
server and get the domain and exchange back up and running. :(  All 
that effort just so we have a calendar integrated into our email 
client... sigh.

On a positive note, depending on exactly how Squid implements NTLM you 
may not actually need a primary domain controller, but I have no actual 
knowledge of how Squid does NTLM (until Fabien came along I never 
thought anyone would want it).

>
> On a more serious note, how do I enable squid to behave as an HTTP/1.1
> proxy? It turned out that per default squid behaves as HTTP/1.0 proxy
> and as such does handle well 'expect: 100-continue' stuff, for 
> instance.

I've got absolutely no idea, and after spending a small amount of time 
searching through the squid manuals I haven't turned anything up yet.  
I get the impression that Squid is using HTTP/1.1 but reporting it as 
HTTP/1.0.  It is interesting though that Squid is also explicitly 
sending a Proxy-Connection: close header unless HttpClient explicitly 
requests a keep-alive.

It is interesting to note that rfc2616 (HTTP 1.1) specifies that:

An application that sends a request or response message that includes 
HTTP-Version of "HTTP/1.1" MUST be at least conditionally compliant 
with this specification.  Applications that are at least conditionally 
compliant with this specification SHOULD use an HTTP-Version of 
"HTTP/1.1" in their messages, and MUST do so for any message that is 
not compatible with HTTP/1.0.

-----------

Also from rfc2145 (HTTP Version Numbers):

We remind the reader that HTTP version numbers are hop-by-hop 
components of HTTP messages, and are not end-to-end.  That is, an HTTP 
proxy never "forwards" an HTTP version number in either a request or 
response.

.....

An HTTP server SHOULD send a response version equal to the highest 
version for which the server is at least conditionally compliant, and 
whose major version is less than or equal to the one received in the 
request.  An HTTP server MUST NOT send a version for which it is not at 
least conditionally compliant.  A server MAY send a 505 (HTTP Version 
Not Supported) response if it cannot send a response using the major 
version used in the client's request.

An HTTP server MAY send a lower response version, if it is known or 
suspected that the client incorrectly implements the HTTP 
specification, but this should not be the default, and this SHOULD NOT 
be done if the request version is HTTP/1.1 or greater.

--------

So it looks like according to the HTTP 1.1 spec, Squid is compliant in 
always sending 1.0 (though not following the recommended proceedure) 
but according to HTTP Version Numbers Squid is non-compliant since it 
is downgrading a HTTP/1.1 request to HTTP/1.0 when Squid does in fact 
support HTTP 1.1 (or so the manual claims).

All in all, I just don't get it.  I have to wonder just how compliant 
with HTTP 1.1 Squid is - I always thought it was a 1.0 only proxy until 
I thought to check my facts before posting earlier.  The manual claims 
that since 2.0 Squid has been 1.1 compliant but 
http://squid.sourceforge.net/squidhttp1.1.htm lists quite a few "MUST" 
features from the 1.1 spec that aren't implemented.  Perhaps then, 
Squid is capable of dealing with HTTP 1.1 but is only actually HTTP 1.0 
compliant and thus reports it's version as 1.0?  There is definitely a 
bug in Squid's NTLM support though because regardless of the HTTP 
version the connection *must* be kept alive after sending the NTLM 
challenge (message 2 of the NTLM protocol) through.

BTW, to get NTLM authentication into your squid cache you'll want to 
look at http://squid.sourceforge.net/ntlm/ it appears the NTLM support 
is a separate branch.

Anyway, too many manuals late on a Saturday night for me, I'm off to 
bed.  That lot should give you something to ponder for a while. :)

> Cheers
>
> Oleg

Regards,

Adrian Sutton.


Re: NTLM Proxy Authentication : still receiving 407

Posted by Oleg Kalnichevski <o....@dplanet.ch>.
Adrian
I already have squid installed on my Linux notebook. That would not be a
problem. I just do not have an NT primary domain controller at home.
Luckily for me, fridges still run without one. Rumors have it that
Microsoft is working hard on a new operating system for refrigerators
that may require Windows 2003 server to be setup on the LAN. I'd have to
ask my girlfriend, who happened to be the sysadmin in my household, to
grand me 'beer access rights'. 

On a more serious note, how do I enable squid to behave as an HTTP/1.1
proxy? It turned out that per default squid behaves as HTTP/1.0 proxy
and as such does handle well 'expect: 100-continue' stuff, for instance.

Cheers

Oleg


On Sat, 2003-04-26 at 13:53, Adrian Sutton wrote:
> Aha!
> Fabien, it looks like your Squid proxy is configured to use HTTP/1.0 
> instead of HTTP/1.1 (the line below from your log file shows this).  
> Squid-2.0 and above handle HTTP/1.1 correctly, so it should be capable 
> of using that.  You'll notice that HttpClient is actually sending a 
> HTTP 1.1 request to the proxy but Squid is replying with a HTTP 1.0 
> request (which then causes HttpClient to switch to HTTP 1.0 mode).  
> Since HTTP 1.0 specifies that connections should be closed unless 
> specified otherwise, Squid closes the connection which breaks NTLM 
> authentication.
> 
> > << "HTTP/1.0 407 Proxy Authentication Required[\r][\n]"
> 
> When you add Proxy-Connection: keep-alive you explicitly tell Squid to 
> keep the connection alive and avoid the problem.  The best solution for 
> this would be to configure Squid to use HTTP 1.1, but if that's not 
> possible, adding Proxy-Connection: keep-alive is likely to be the only 
> solution.
> 
> To save Oleg some trouble I can take a look into this since I already 
> have Squid installed - what are you using to provide the NTLM 
> authentication with Squid?  (Sample config file would be ideal as well).
> 
> Regards,
> 
> Adrian Sutton
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
> 


Re: NTLM Proxy Authentication : still receiving 407

Posted by Adrian Sutton <ad...@intencha.com>.
Aha!
Fabien, it looks like your Squid proxy is configured to use HTTP/1.0 
instead of HTTP/1.1 (the line below from your log file shows this).  
Squid-2.0 and above handle HTTP/1.1 correctly, so it should be capable 
of using that.  You'll notice that HttpClient is actually sending a 
HTTP 1.1 request to the proxy but Squid is replying with a HTTP 1.0 
request (which then causes HttpClient to switch to HTTP 1.0 mode).  
Since HTTP 1.0 specifies that connections should be closed unless 
specified otherwise, Squid closes the connection which breaks NTLM 
authentication.

> << "HTTP/1.0 407 Proxy Authentication Required[\r][\n]"

When you add Proxy-Connection: keep-alive you explicitly tell Squid to 
keep the connection alive and avoid the problem.  The best solution for 
this would be to configure Squid to use HTTP 1.1, but if that's not 
possible, adding Proxy-Connection: keep-alive is likely to be the only 
solution.

To save Oleg some trouble I can take a look into this since I already 
have Squid installed - what are you using to provide the NTLM 
authentication with Squid?  (Sample config file would be ideal as well).

Regards,

Adrian Sutton


Re: NTLM Proxy Authentication : still receiving 407

Posted by Fabien Guironnet <fg...@free.fr>.
Oleg,

Here the logs of my test program :

Without adding the header "Proxy-Connection: Keep-Alive" to the request 
method (it don't works) :
============================== BEGIN 
==============================================
2003/04/26 13:04:23:115 CEST [DEBUG] HttpClient - -Java version: 1.4.0_01
2003/04/26 13:04:23:115 CEST [DEBUG] HttpClient - -Java vendor: Sun 
Microsystems Inc.
2003/04/26 13:04:23:115 CEST [DEBUG] HttpClient - -Java class path: 
P:\Jakarta\workspace\HTTPClient;P:\Bibliotheques\Jakarta HTTPClient 
2.0alpha3\lib\commons-logging.jar;P:\Bibliotheques\Cryptix 
JCE\bin\cryptix-jce-api.jar
2003/04/26 13:04:23:115 CEST [DEBUG] HttpClient - -Operating system 
name: Windows 2000
2003/04/26 13:04:23:115 CEST [DEBUG] HttpClient - -Operating system 
architecture: x86
2003/04/26 13:04:23:115 CEST [DEBUG] HttpClient - -Operating system 
version: 5.0
2003/04/26 13:04:23:334 CEST [DEBUG] HttpClient - -SUN 1.2: SUN (DSA 
key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; 
X.509 certificates; JKS keystore; PKIX CertPathValidator; PKIX 
CertPathBuilder; LDAP, Collection CertStores)
2003/04/26 13:04:23:334 CEST [DEBUG] HttpClient - -SunJSSE 1.4: Sun JSSE 
provider(implements RSA Signatures, PKCS12, SunX509 key/trust factories, 
SSLv3, TLSv1)
2003/04/26 13:04:23:334 CEST [DEBUG] HttpClient - -SunRsaSign 1.0: SUN's 
provider for RSA signatures
2003/04/26 13:04:23:334 CEST [DEBUG] HttpClient - -SunJCE 1.4: SunJCE 
Provider (implements DES, Triple DES, Blowfish, PBE, Diffie-Hellman, 
HMAC-MD5, HMAC-SHA1)
2003/04/26 13:04:23:334 CEST [DEBUG] HttpClient - -SunJGSS 1.0: Sun 
(Kerberos v5)
2003/04/26 13:04:24:006 CEST [TRACE] HttpState - -enter 
HttpState.setProxyCredentials(String, String, Credentials
2003/04/26 13:04:24:021 CEST [TRACE] HttpClient - -enter 
HttpClient.executeMethod(HttpMethod)
2003/04/26 13:04:24:021 CEST [TRACE] HttpClient - -enter 
HttpClient.executeMethod(HostConfiguration,HttpMethod)
2003/04/26 13:04:24:209 CEST [DEBUG] HttpConnection - -Creating 
connection for www.google.fr via 192.168.0.2 using protocol http:80
2003/04/26 13:04:24:209 CEST [DEBUG] HttpConnection - 
-HttpConnection.setSoTimeout(0)
2003/04/26 13:04:24:209 CEST [TRACE] HttpConnection - -enter 
HttpConnection.open()
2003/04/26 13:04:24:256 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.execute(HttpState, HttpConnection)
2003/04/26 13:04:24:256 CEST [DEBUG] HttpMethod - -Execute loop try 1
2003/04/26 13:04:24:256 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processRequest(HttpState, HttpConnection)
2003/04/26 13:04:24:256 CEST [TRACE] HttpMethod - -Attempt number 1 to 
process request
2003/04/26 13:04:24:256 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequest(HttpState, HttpConnection)
2003/04/26 13:04:24:256 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestLine(HttpState, HttpConnection)
2003/04/26 13:04:24:256 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.generateRequestLine(HttpConnection, String, String, 
String, String)
2003/04/26 13:04:24:287 CEST [DEBUG] wire - ->> "GET 
http://www.google.fr/ HTTP/1.1[\r][\n]"
2003/04/26 13:04:24:287 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:04:24:303 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:24:303 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:24:303 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
2003/04/26 13:04:24:318 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:04:24:318 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:04:24:318 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:24:318 CEST [DEBUG] HttpMethod - -Adding Host request 
header
2003/04/26 13:04:24:318 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:24:412 CEST [TRACE] HttpState - -enter 
HttpState.getCookies()
2003/04/26 13:04:24:412 CEST [TRACE] CookieSpec - -enter 
CookieSpecBase.match(String, int, String, boolean, Cookie[])
2003/04/26 13:04:24:412 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:24:412 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addProxyAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:24:412 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addContentLengthRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:24:428 CEST [DEBUG] wire - ->> "User-Agent: Jakarta 
Commons-HttpClient/2.0alpha3[\r][\n]"
2003/04/26 13:04:24:428 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:04:24:428 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:24:428 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:24:428 CEST [DEBUG] wire - ->> "Host: 
www.google.fr[\r][\n]"
2003/04/26 13:04:24:428 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:04:24:428 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:24:428 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:24:428 CEST [TRACE] HttpConnection - -enter 
HttpConnection.writeLine()
2003/04/26 13:04:24:428 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:24:428 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:24:428 CEST [DEBUG] wire - ->> "[\r][\n]"
2003/04/26 13:04:24:428 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponse(HttpState, HttpConnection)
2003/04/26 13:04:24:428 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readStatusLine(HttpState, HttpConnection)
2003/04/26 13:04:24:443 CEST [TRACE] HttpConnection - -enter 
HttpConnection.readLine()
2003/04/26 13:04:24:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:474 CEST [DEBUG] wire - -<< "HTTP/1.0 407 Proxy 
Authentication Required[\r][\n]"
2003/04/26 13:04:24:506 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseHeaders(HttpState,HttpConnection)
2003/04/26 13:04:24:506 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:04:24:506 CEST [TRACE] HttpParser - -enter 
HeaderParser.parseHeaders(HttpConnection, HeaderGroup)
2003/04/26 13:04:24:506 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:506 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:506 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:506 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:506 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:506 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:506 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:506 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:506 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:521 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:537 CEST [DEBUG] wire - -<< "Server: 
squid/2.5.STABLE1-20030121[\r][\n]"
2003/04/26 13:04:24:537 CEST [DEBUG] wire - -<< "Mime-Version: 1.0[\r][\n]"
2003/04/26 13:04:24:537 CEST [DEBUG] wire - -<< "Date: Sat, 26 Apr 2003 
11:04:24 GMT[\r][\n]"
2003/04/26 13:04:24:537 CEST [DEBUG] wire - -<< "Content-Type: 
text/html[\r][\n]"
2003/04/26 13:04:24:537 CEST [DEBUG] wire - -<< "Content-Length: 
1289[\r][\n]"
2003/04/26 13:04:24:537 CEST [DEBUG] wire - -<< "Expires: Sat, 26 Apr 
2003 11:04:24 GMT[\r][\n]"
2003/04/26 13:04:24:537 CEST [DEBUG] wire - -<< "X-Squid-Error: 
ERR_CACHE_ACCESS_DENIED 0[\r][\n]"
2003/04/26 13:04:24:537 CEST [DEBUG] wire - -<< "Proxy-Authenticate: 
NTLM[\r][\n]"
2003/04/26 13:04:24:553 CEST [DEBUG] wire - -<< "X-Cache: MISS from 
roland[\r][\n]"
2003/04/26 13:04:24:553 CEST [DEBUG] wire - -<< "Proxy-Connection: 
close[\r][\n]"
2003/04/26 13:04:24:553 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processResponseHeaders(HttpState, HttpConnection)
2003/04/26 13:04:24:553 CEST [TRACE] GetMethod - -enter 
GetMethod.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:04:24:553 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:04:24:553 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:04:24:553 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:04:24:553 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parse(String)
2003/04/26 13:04:24:553 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:04:24:599 CEST [DEBUG] HttpMethod - -Authorization required
2003/04/26 13:04:24:599 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processAuthenticationResponse(HttpState, HttpConnection)
2003/04/26 13:04:24:646 CEST [TRACE] HttpAuthenticator - -enter 
HttpAuthenticator.selectAuthScheme(Header[])
2003/04/26 13:04:24:693 CEST [TRACE] HttpAuthenticator - -enter 
HttpAuthenticator.authenticateProxy(AuthScheme, HttpMethod, HttpState)
2003/04/26 13:04:24:693 CEST [DEBUG] HttpAuthenticator - -Using 
'www.google.fr' authentication realm
2003/04/26 13:04:24:693 CEST [TRACE] HttpState - -enter 
HttpState.getCredentials(String, String
2003/04/26 13:04:24:693 CEST [TRACE] NTLMScheme - -enter 
NTLMScheme.authenticate(Credentials, String, String)
2003/04/26 13:04:24:693 CEST [TRACE] NTLMScheme - -enter 
NTLMScheme.authenticate(NTCredentials, String)
2003/04/26 13:04:24:756 CEST [DEBUG] HttpMethod - 
-HttpMethodBase.execute(): Server demanded authentication credentials, 
will try again.
2003/04/26 13:04:24:756 CEST [DEBUG] wire - -<< "<!DOCTYPE HTML PUBLIC 
"-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">[\n]"
2003/04/26 13:04:24:756 CEST [DEBUG] wire - -<< "<HTML><HEAD><META 
HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<TITLE>ERROR: Cache 
Access Denied</TITLE>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<STYLE 
type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "</HEAD>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<BODY>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<H1>ERROR</H1>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<H2>Cache Access 
Denied</H2>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<HR noshade 
size="1px">[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "While trying to 
retrieve the URL:[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<A 
HREF="http://www.google.fr/">http://www.google.fr/</A>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "The following error was 
encountered:[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<UL>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<LI>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "<STRONG>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "Cache Access Denied.[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "</STRONG>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "</UL>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:04:24:771 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "<P>Sorry, you are not 
currently allowed to request:[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "<PRE>    
http://www.google.fr/</PRE>[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "from this cache until 
you have authenticated yourself.[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "You need to use 
Netscape version 2.0 or greater, or Microsoft Internet[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "Explorer 3.0, or an 
HTTP/1.1 compliant browser for this to work.  Please[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "contact the <A 
HREF="mailto:root">cache administrator</a> if you have[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "difficulties auth"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "enticating yourself or 
[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "<A 
HREF="http://roland/cgi-bin/chpasswd.cgi">change</a> your default 
password.[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "<BR clear="all">[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "<HR noshade 
size="1px">[\n]"
2003/04/26 13:04:24:787 CEST [DEBUG] wire - -<< "<ADDRESS>[\n]"
2003/04/26 13:04:24:803 CEST [DEBUG] wire - -<< "Generated Sat, 26 Apr 
2003 11:04:24 GMT by roland (squid/2.5.STABLE1-20030121)[\n]"
2003/04/26 13:04:24:803 CEST [DEBUG] wire - -<< "</ADDRESS>[\n]"
2003/04/26 13:04:24:803 CEST [DEBUG] wire - -<< "</BODY></HTML>[\n]"
2003/04/26 13:04:24:803 CEST [DEBUG] HttpMethod - -Should close 
connection in response to Proxy-Connection: close

2003/04/26 13:04:24:803 CEST [TRACE] HttpConnection - -enter 
HttpConnection.close()
2003/04/26 13:04:24:803 CEST [TRACE] HttpConnection - -enter 
HttpConnection.closeSockedAndStreams()
2003/04/26 13:04:24:803 CEST [DEBUG] HttpMethod - -Execute loop try 2
2003/04/26 13:04:24:803 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processRequest(HttpState, HttpConnection)
2003/04/26 13:04:24:803 CEST [TRACE] HttpMethod - -Attempt number 1 to 
process request
2003/04/26 13:04:24:803 CEST [DEBUG] HttpMethod - -Opening the connection.
2003/04/26 13:04:24:803 CEST [TRACE] HttpConnection - -enter 
HttpConnection.open()
2003/04/26 13:04:24:803 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequest(HttpState, HttpConnection)
2003/04/26 13:04:24:803 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestLine(HttpState, HttpConnection)
2003/04/26 13:04:24:803 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.generateRequestLine(HttpConnection, String, String, 
String, String)
2003/04/26 13:04:24:818 CEST [DEBUG] wire - ->> "GET 
http://www.google.fr/ HTTP/1.0[\r][\n]"
2003/04/26 13:04:24:818 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:04:24:818 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:24:818 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:24:818 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
2003/04/26 13:04:24:818 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:04:24:818 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:04:24:818 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:24:818 CEST [DEBUG] HttpMethod - -Request to add Host 
header ignored: header already added
2003/04/26 13:04:24:818 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:24:818 CEST [TRACE] HttpState - -enter 
HttpState.getCookies()
2003/04/26 13:04:24:818 CEST [TRACE] CookieSpec - -enter 
CookieSpecBase.match(String, int, String, boolean, Cookie[])
2003/04/26 13:04:24:818 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:24:818 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addProxyAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:24:849 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addContentLengthRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:24:865 CEST [DEBUG] wire - ->> "User-Agent: Jakarta 
Commons-HttpClient/2.0alpha3[\r][\n]"
2003/04/26 13:04:24:865 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:04:24:865 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:24:865 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:24:865 CEST [DEBUG] wire - ->> "Host: 
www.google.fr[\r][\n]"
2003/04/26 13:04:24:865 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:04:24:865 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:24:865 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:24:865 CEST [DEBUG] wire - ->> "Proxy-Authorization: 
NTLM 
TlRMTVNTUAABAAAABlIAAAQABAArAAAACwALACAAAAAxOTIuMTY4LjAuMUxZT04=[\r][\n]"
2003/04/26 13:04:24:865 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:04:24:865 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:24:865 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:24:881 CEST [TRACE] HttpConnection - -enter 
HttpConnection.writeLine()
2003/04/26 13:04:24:881 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:24:881 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:24:881 CEST [DEBUG] wire - ->> "[\r][\n]"
2003/04/26 13:04:24:881 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponse(HttpState, HttpConnection)
2003/04/26 13:04:24:881 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readStatusLine(HttpState, HttpConnection)
2003/04/26 13:04:24:881 CEST [TRACE] HttpConnection - -enter 
HttpConnection.readLine()
2003/04/26 13:04:24:881 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:881 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:896 CEST [DEBUG] wire - -<< "HTTP/1.0 407 Proxy 
Authentication Required[\r][\n]"
2003/04/26 13:04:24:896 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseHeaders(HttpState,HttpConnection)
2003/04/26 13:04:24:896 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:04:24:896 CEST [TRACE] HttpParser - -enter 
HeaderParser.parseHeaders(HttpConnection, HeaderGroup)
2003/04/26 13:04:24:896 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:896 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:896 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:896 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:896 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:896 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:24:912 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:24:928 CEST [DEBUG] wire - -<< "Server: 
squid/2.5.STABLE1-20030121[\r][\n]"
2003/04/26 13:04:24:928 CEST [DEBUG] wire - -<< "Mime-Version: 1.0[\r][\n]"
2003/04/26 13:04:24:928 CEST [DEBUG] wire - -<< "Date: Sat, 26 Apr 2003 
11:04:24 GMT[\r][\n]"
2003/04/26 13:04:24:928 CEST [DEBUG] wire - -<< "Content-Type: 
text/html[\r][\n]"
2003/04/26 13:04:24:928 CEST [DEBUG] wire - -<< "Content-Length: 
1289[\r][\n]"
2003/04/26 13:04:24:928 CEST [DEBUG] wire - -<< "Expires: Sat, 26 Apr 
2003 11:04:24 GMT[\r][\n]"
2003/04/26 13:04:24:928 CEST [DEBUG] wire - -<< "X-Squid-Error: 
ERR_CACHE_ACCESS_DENIED 0[\r][\n]"
2003/04/26 13:04:24:928 CEST [DEBUG] wire - -<< "Proxy-Authenticate: 
NTLM TlRMTVNTUAACAAAABAAEACgAAACCgkEADcxzew15pyQAAAAAAAAAAExZT04=[\r][\n]"
2003/04/26 13:04:24:928 CEST [DEBUG] wire - -<< "X-Cache: MISS from 
roland[\r][\n]"
2003/04/26 13:04:24:928 CEST [DEBUG] wire - -<< "Proxy-Connection: 
close[\r][\n]"
2003/04/26 13:04:24:928 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processResponseHeaders(HttpState, HttpConnection)
2003/04/26 13:04:24:928 CEST [TRACE] GetMethod - -enter 
GetMethod.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:04:24:928 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:04:24:928 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:04:24:928 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:04:24:928 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parse(String)
2003/04/26 13:04:24:928 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:04:24:928 CEST [DEBUG] HttpMethod - -Authorization required
2003/04/26 13:04:24:928 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processAuthenticationResponse(HttpState, HttpConnection)
2003/04/26 13:04:24:928 CEST [TRACE] HttpAuthenticator - -enter 
HttpAuthenticator.selectAuthScheme(Header[])
2003/04/26 13:04:24:943 CEST [TRACE] HttpAuthenticator - -enter 
HttpAuthenticator.authenticateProxy(AuthScheme, HttpMethod, HttpState)
2003/04/26 13:04:24:943 CEST [DEBUG] HttpAuthenticator - -Using 
'www.google.fr' authentication realm
2003/04/26 13:04:24:943 CEST [TRACE] HttpState - -enter 
HttpState.getCredentials(String, String
2003/04/26 13:04:24:943 CEST [TRACE] NTLMScheme - -enter 
NTLMScheme.authenticate(Credentials, String, String)
2003/04/26 13:04:24:943 CEST [TRACE] NTLMScheme - -enter 
NTLMScheme.authenticate(NTCredentials, String)
2003/04/26 13:04:25:834 CEST [DEBUG] HttpMethod - 
-HttpMethodBase.execute(): Server demanded authentication credentials, 
will try again.
2003/04/26 13:04:25:834 CEST [DEBUG] wire - -<< "<!DOCTYPE HTML PUBLIC 
"-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">[\n]"
2003/04/26 13:04:25:834 CEST [DEBUG] wire - -<< "<HTML><HEAD><META 
HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">[\n]"
2003/04/26 13:04:25:834 CEST [DEBUG] wire - -<< "<TITLE>ERROR: Cache 
Access Denied</TITLE>[\n]"
2003/04/26 13:04:25:834 CEST [DEBUG] wire - -<< "<STYLE 
type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>[\n]"
2003/04/26 13:04:25:834 CEST [DEBUG] wire - -<< "</HEAD>[\n]"
2003/04/26 13:04:25:834 CEST [DEBUG] wire - -<< "<BODY>[\n]"
2003/04/26 13:04:25:834 CEST [DEBUG] wire - -<< "<H1>ERROR</H1>[\n]"
2003/04/26 13:04:25:834 CEST [DEBUG] wire - -<< "<H2>Cache Access 
Denied</H2>[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "<HR noshade 
size="1px">[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "While trying to 
retrieve the URL:[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "<A 
HREF="http://www.google.fr/">http://www.google.fr/</A>[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "The following error was 
encountered:[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "<UL>[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "<LI>[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "<STRONG>[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "Cache Access Denied.[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "</STRONG>[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "</UL>[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "<P>Sorry, you are not 
currently allowed to request:[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "<PRE>    
http://www.google.fr/</PRE>[\n]"
2003/04/26 13:04:25:849 CEST [DEBUG] wire - -<< "from this cache until 
you have authenticated yourself.[\n]"
2003/04/26 13:04:25:881 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:04:25:881 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:04:25:881 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:04:25:881 CEST [DEBUG] wire - -<< "You need to use 
Netscape version 2.0 or greater, or Microsoft Internet[\n]"
2003/04/26 13:04:25:881 CEST [DEBUG] wire - -<< "Explorer 3.0, or an 
HTTP/1.1 compliant browser for this to work.  Please[\n]"
2003/04/26 13:04:25:881 CEST [DEBUG] wire - -<< "contact the <A 
HREF="mailto:root">cache administrator</a> if you have[\n]"
2003/04/26 13:04:25:881 CEST [DEBUG] wire - -<< "difficulties auth"
2003/04/26 13:04:25:896 CEST [DEBUG] wire - -<< "enticating yourself or 
[\n]"
2003/04/26 13:04:25:896 CEST [DEBUG] wire - -<< "<A 
HREF="http://roland/cgi-bin/chpasswd.cgi">change</a> your default 
password.[\n]"
2003/04/26 13:04:25:896 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:04:25:896 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:04:25:896 CEST [DEBUG] wire - -<< "<BR clear="all">[\n]"
2003/04/26 13:04:25:896 CEST [DEBUG] wire - -<< "<HR noshade 
size="1px">[\n]"
2003/04/26 13:04:25:896 CEST [DEBUG] wire - -<< "<ADDRESS>[\n]"
2003/04/26 13:04:25:896 CEST [DEBUG] wire - -<< "Generated Sat, 26 Apr 
2003 11:04:24 GMT by roland (squid/2.5.STABLE1-20030121)[\n]"
2003/04/26 13:04:25:896 CEST [DEBUG] wire - -<< "</ADDRESS>[\n]"
2003/04/26 13:04:25:896 CEST [DEBUG] wire - -<< "</BODY></HTML>[\n]"
2003/04/26 13:04:25:896 CEST [DEBUG] HttpMethod - -Should close 
connection in response to Proxy-Connection: close

2003/04/26 13:04:25:896 CEST [TRACE] HttpConnection - -enter 
HttpConnection.close()
2003/04/26 13:04:25:896 CEST [TRACE] HttpConnection - -enter 
HttpConnection.closeSockedAndStreams()
2003/04/26 13:04:25:896 CEST [DEBUG] HttpMethod - -Execute loop try 3
2003/04/26 13:04:25:896 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processRequest(HttpState, HttpConnection)
2003/04/26 13:04:25:896 CEST [TRACE] HttpMethod - -Attempt number 1 to 
process request
2003/04/26 13:04:25:896 CEST [DEBUG] HttpMethod - -Opening the connection.
2003/04/26 13:04:25:896 CEST [TRACE] HttpConnection - -enter 
HttpConnection.open()
2003/04/26 13:04:25:896 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequest(HttpState, HttpConnection)
2003/04/26 13:04:25:896 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestLine(HttpState, HttpConnection)
2003/04/26 13:04:25:912 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.generateRequestLine(HttpConnection, String, String, 
String, String)
2003/04/26 13:04:25:912 CEST [DEBUG] wire - ->> "GET 
http://www.google.fr/ HTTP/1.0[\r][\n]"
2003/04/26 13:04:25:912 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:04:25:912 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:25:912 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:25:912 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
2003/04/26 13:04:25:912 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:04:25:912 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:04:25:912 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:25:912 CEST [DEBUG] HttpMethod - -Request to add Host 
header ignored: header already added
2003/04/26 13:04:25:912 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:25:912 CEST [TRACE] HttpState - -enter 
HttpState.getCookies()
2003/04/26 13:04:25:912 CEST [TRACE] CookieSpec - -enter 
CookieSpecBase.match(String, int, String, boolean, Cookie[])
2003/04/26 13:04:25:912 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:25:912 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addProxyAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:25:912 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addContentLengthRequestHeader(HttpState, HttpConnection)
2003/04/26 13:04:25:912 CEST [DEBUG] wire - ->> "User-Agent: Jakarta 
Commons-HttpClient/2.0alpha3[\r][\n]"
2003/04/26 13:04:25:912 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:04:25:912 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:25:912 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:25:912 CEST [DEBUG] wire - ->> "Host: 
www.google.fr[\r][\n]"
2003/04/26 13:04:25:912 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:04:25:912 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:25:912 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:25:912 CEST [DEBUG] wire - ->> "Proxy-Authorization: 
NTLM 
TlRMTVNTUAADAAAAGAAYAFgAAAAAAAAAcAAAAAQABABAAAAACQAJAEQAAAALAAsATQAAAAAAAABwAAAABlIAAExZT05HVUlST05ORVQxOTIuMTY4LjAuMVLgKtPczyGD+amvodG8E1uZxOtpKo4oMQ==[\r][\n]"
2003/04/26 13:04:25:928 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:04:25:928 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:25:928 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:25:928 CEST [TRACE] HttpConnection - -enter 
HttpConnection.writeLine()
2003/04/26 13:04:25:928 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:04:25:928 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:04:25:928 CEST [DEBUG] wire - ->> "[\r][\n]"
2003/04/26 13:04:25:928 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponse(HttpState, HttpConnection)
2003/04/26 13:04:25:928 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readStatusLine(HttpState, HttpConnection)
2003/04/26 13:04:25:928 CEST [TRACE] HttpConnection - -enter 
HttpConnection.readLine()
2003/04/26 13:04:25:928 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:928 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:943 CEST [DEBUG] wire - -<< "HTTP/1.0 407 Proxy 
Authentication Required[\r][\n]"
2003/04/26 13:04:25:943 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseHeaders(HttpState,HttpConnection)
2003/04/26 13:04:25:943 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HeaderParser.parseHeaders(HttpConnection, HeaderGroup)
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:943 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:959 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:959 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:959 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:959 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:959 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:959 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:959 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:04:25:959 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:04:25:959 CEST [DEBUG] wire - -<< "Server: 
squid/2.5.STABLE1-20030121[\r][\n]"
2003/04/26 13:04:25:959 CEST [DEBUG] wire - -<< "Mime-Version: 1.0[\r][\n]"
2003/04/26 13:04:25:959 CEST [DEBUG] wire - -<< "Date: Sat, 26 Apr 2003 
11:04:25 GMT[\r][\n]"
2003/04/26 13:04:25:959 CEST [DEBUG] wire - -<< "Content-Type: 
text/html[\r][\n]"
2003/04/26 13:04:25:959 CEST [DEBUG] wire - -<< "Content-Length: 
1289[\r][\n]"
2003/04/26 13:04:25:959 CEST [DEBUG] wire - -<< "Expires: Sat, 26 Apr 
2003 11:04:25 GMT[\r][\n]"
2003/04/26 13:04:25:959 CEST [DEBUG] wire - -<< "X-Squid-Error: 
ERR_CACHE_ACCESS_DENIED 0[\r][\n]"
2003/04/26 13:04:25:959 CEST [DEBUG] wire - -<< "Proxy-Authenticate: 
NTLM TlRMTVNTUAACAAAABAAEACgAAACCgkEADcxzew15pyQAAAAAAAAAAExZT04=[\r][\n]"
2003/04/26 13:04:25:959 CEST [DEBUG] wire - -<< "X-Cache: MISS from 
roland[\r][\n]"
2003/04/26 13:04:25:974 CEST [DEBUG] wire - -<< "Proxy-Connection: 
close[\r][\n]"
2003/04/26 13:04:25:974 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processResponseHeaders(HttpState, HttpConnection)
2003/04/26 13:04:25:974 CEST [TRACE] GetMethod - -enter 
GetMethod.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:04:26:006 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:04:26:021 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:04:26:021 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:04:26:021 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parse(String)
2003/04/26 13:04:26:021 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:04:26:021 CEST [DEBUG] HttpMethod - -Authorization required
2003/04/26 13:04:26:021 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processAuthenticationResponse(HttpState, HttpConnection)
2003/04/26 13:04:26:021 CEST [TRACE] HttpAuthenticator - -enter 
HttpAuthenticator.selectAuthScheme(Header[])
2003/04/26 13:04:26:021 CEST [INFO] HttpMethod - -Already tried to 
authenticate to 
"www.google.fr#TlRMTVNTUAACAAAABAAEACgAAACCgkEADcxzew15pyQAAAAAAAAAAExZT04=" 
but still receiving 407.
2003/04/26 13:04:26:021 CEST [TRACE] GetMethod - -enter 
GetMethod.getResponseBody()
2003/04/26 13:04:26:021 CEST [TRACE] GetMethod - -enter 
GetMethod.getResponseBodyAsStream()
2003/04/26 13:04:26:021 CEST [DEBUG] wire - -<< "<!DOCTYPE HTML PUBLIC 
"-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">[\n]"
2003/04/26 13:04:26:021 CEST [DEBUG] wire - -<< "<HTML><HEAD><META 
HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">[\n]"
2003/04/26 13:04:26:021 CEST [DEBUG] wire - -<< "<TITLE>ERROR: Cache 
Access Denied</TITLE>[\n]"
2003/04/26 13:04:26:021 CEST [DEBUG] wire - -<< "<STYLE 
type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>[\n]"
2003/04/26 13:04:26:021 CEST [DEBUG] wire - -<< "</HEAD>[\n]"
2003/04/26 13:04:26:021 CEST [DEBUG] wire - -<< "<BODY>[\n]"
2003/04/26 13:04:26:021 CEST [DEBUG] wire - -<< "<H1>ERROR</H1>[\n]"
2003/04/26 13:04:26:021 CEST [DEBUG] wire - -<< "<H2>Cache Access 
Denied</H2>[\n]"
2003/04/26 13:04:26:021 CEST [DEBUG] wire - -<< "<HR noshade 
size="1px">[\n]"
2003/04/26 13:04:26:021 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:04:26:021 CEST [DEBUG] wire - -<< "While trying to 
retrieve the URL:[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<A 
HREF="http://www.google.fr/">http://www.google.fr/</A>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "The following error was 
encountered:[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<UL>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<LI>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<STRONG>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "Cache Access Denied.[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "</STRONG>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "</UL>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<P>Sorry, you are not 
currently allowed to request:[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<PRE>    
http://www.google.fr/</PRE>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "from this cache until 
you have authenticated yourself.[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "You need to use 
Netscape version 2.0 or greater, or Microsoft Internet[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "Explorer 3.0, or an 
HTTP/1.1 compliant browser for this to work.  Please[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "contact the <A 
HREF="mailto:root">cache administrator</a> if you have[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "difficulties 
authenticating yourself or [\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<A 
HREF="http://roland/cgi-bin/chpasswd.cgi">change</a> your default 
password.[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<BR clear="all">[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<HR noshade 
size="1px">[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "<ADDRESS>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "Generated Sat, 26 Apr 
2003 11:04:25 GMT by roland (squid/2.5.STABLE1-20030121)[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "</ADDRESS>[\n]"
2003/04/26 13:04:26:037 CEST [DEBUG] wire - -<< "</BODY></HTML>[\n]"
2003/04/26 13:04:26:053 CEST [DEBUG] HttpMethod - -Should close 
connection in response to Proxy-Connection: close

2003/04/26 13:04:26:053 CEST [TRACE] HttpConnection - -enter 
HttpConnection.close()
2003/04/26 13:04:26:053 CEST [TRACE] HttpConnection - -enter 
HttpConnection.closeSockedAndStreams()
2003/04/26 13:04:26:053 CEST [TRACE] HttpConnection - -enter 
HttpConnection.releaseConnection()
2003/04/26 13:04:26:053 CEST [DEBUG] HttpMethod - -buffering response body
2003/04/26 13:04:26:053 CEST [TRACE] HttpMethod - -enter 
getContentCharSet( Header contentheader )
2003/04/26 13:04:26:053 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parse(String)
2003/04/26 13:04:26:053 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:04:26:053 CEST [DEBUG] HttpMethod - -Default charset used: 
ISO-8859-1
407
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD>......................

============================== END 
==============================================




With adding the header "Proxy-Connection: Keep-Alive" to the request 
method (it works) :
============================== BEGIN 
==============================================
2003/04/26 13:05:31:240 CEST [DEBUG] HttpClient - -Java version: 1.4.0_01
2003/04/26 13:05:31:240 CEST [DEBUG] HttpClient - -Java vendor: Sun 
Microsystems Inc.
2003/04/26 13:05:31:240 CEST [DEBUG] HttpClient - -Java class path: 
P:\Jakarta\workspace\HTTPClient;P:\Bibliotheques\Jakarta HTTPClient 
2.0alpha3\lib\commons-logging.jar;P:\Bibliotheques\Cryptix 
JCE\bin\cryptix-jce-api.jar
2003/04/26 13:05:31:256 CEST [DEBUG] HttpClient - -Operating system 
name: Windows 2000
2003/04/26 13:05:31:256 CEST [DEBUG] HttpClient - -Operating system 
architecture: x86
2003/04/26 13:05:31:256 CEST [DEBUG] HttpClient - -Operating system 
version: 5.0
2003/04/26 13:05:31:443 CEST [DEBUG] HttpClient - -SUN 1.2: SUN (DSA 
key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; 
X.509 certificates; JKS keystore; PKIX CertPathValidator; PKIX 
CertPathBuilder; LDAP, Collection CertStores)
2003/04/26 13:05:31:443 CEST [DEBUG] HttpClient - -SunJSSE 1.4: Sun JSSE 
provider(implements RSA Signatures, PKCS12, SunX509 key/trust factories, 
SSLv3, TLSv1)
2003/04/26 13:05:31:443 CEST [DEBUG] HttpClient - -SunRsaSign 1.0: SUN's 
provider for RSA signatures
2003/04/26 13:05:31:443 CEST [DEBUG] HttpClient - -SunJCE 1.4: SunJCE 
Provider (implements DES, Triple DES, Blowfish, PBE, Diffie-Hellman, 
HMAC-MD5, HMAC-SHA1)
2003/04/26 13:05:31:443 CEST [DEBUG] HttpClient - -SunJGSS 1.0: Sun 
(Kerberos v5)
2003/04/26 13:05:32:178 CEST [TRACE] HttpState - -enter 
HttpState.setProxyCredentials(String, String, Credentials
2003/04/26 13:05:32:178 CEST [TRACE] HttpClient - -enter 
HttpClient.executeMethod(HttpMethod)
2003/04/26 13:05:32:178 CEST [TRACE] HttpClient - -enter 
HttpClient.executeMethod(HostConfiguration,HttpMethod)
2003/04/26 13:05:32:381 CEST [DEBUG] HttpConnection - -Creating 
connection for www.google.fr via 192.168.0.2 using protocol http:80
2003/04/26 13:05:32:381 CEST [DEBUG] HttpConnection - 
-HttpConnection.setSoTimeout(0)
2003/04/26 13:05:32:381 CEST [TRACE] HttpConnection - -enter 
HttpConnection.open()
2003/04/26 13:05:32:396 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.execute(HttpState, HttpConnection)
2003/04/26 13:05:32:396 CEST [DEBUG] HttpMethod - -Execute loop try 1
2003/04/26 13:05:32:396 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processRequest(HttpState, HttpConnection)
2003/04/26 13:05:32:396 CEST [TRACE] HttpMethod - -Attempt number 1 to 
process request
2003/04/26 13:05:32:396 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequest(HttpState, HttpConnection)
2003/04/26 13:05:32:412 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestLine(HttpState, HttpConnection)
2003/04/26 13:05:32:412 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.generateRequestLine(HttpConnection, String, String, 
String, String)
2003/04/26 13:05:32:428 CEST [DEBUG] wire - ->> "GET 
http://www.google.fr/ HTTP/1.1[\r][\n]"
2003/04/26 13:05:32:428 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:32:459 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:32:459 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:32:459 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
2003/04/26 13:05:32:459 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:05:32:459 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:05:32:459 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:32:459 CEST [DEBUG] HttpMethod - -Adding Host request 
header
2003/04/26 13:05:32:459 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:32:553 CEST [TRACE] HttpState - -enter 
HttpState.getCookies()
2003/04/26 13:05:32:553 CEST [TRACE] CookieSpec - -enter 
CookieSpecBase.match(String, int, String, boolean, Cookie[])
2003/04/26 13:05:32:553 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:32:553 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addProxyAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:32:553 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addContentLengthRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:32:553 CEST [DEBUG] wire - ->> "Proxy-Connection: 
Keep-Alive[\r][\n]"
2003/04/26 13:05:32:553 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:32:553 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:32:553 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:32:568 CEST [DEBUG] wire - ->> "User-Agent: Jakarta 
Commons-HttpClient/2.0alpha3[\r][\n]"
2003/04/26 13:05:32:568 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:32:568 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:32:568 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:32:568 CEST [DEBUG] wire - ->> "Host: 
www.google.fr[\r][\n]"
2003/04/26 13:05:32:568 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:32:568 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:32:568 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:32:568 CEST [TRACE] HttpConnection - -enter 
HttpConnection.writeLine()
2003/04/26 13:05:32:568 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:32:568 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:32:568 CEST [DEBUG] wire - ->> "[\r][\n]"
2003/04/26 13:05:32:568 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponse(HttpState, HttpConnection)
2003/04/26 13:05:32:568 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readStatusLine(HttpState, HttpConnection)
2003/04/26 13:05:32:568 CEST [TRACE] HttpConnection - -enter 
HttpConnection.readLine()
2003/04/26 13:05:32:599 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:599 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:599 CEST [DEBUG] wire - -<< "HTTP/1.0 407 Proxy 
Authentication Required[\r][\n]"
2003/04/26 13:05:32:662 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseHeaders(HttpState,HttpConnection)
2003/04/26 13:05:32:662 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HeaderParser.parseHeaders(HttpConnection, HeaderGroup)
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:662 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:678 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:678 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:678 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:678 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:678 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:678 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:32:678 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:32:678 CEST [DEBUG] wire - -<< "Server: 
squid/2.5.STABLE1-20030121[\r][\n]"
2003/04/26 13:05:32:678 CEST [DEBUG] wire - -<< "Mime-Version: 1.0[\r][\n]"
2003/04/26 13:05:32:678 CEST [DEBUG] wire - -<< "Date: Sat, 26 Apr 2003 
11:05:32 GMT[\r][\n]"
2003/04/26 13:05:32:678 CEST [DEBUG] wire - -<< "Content-Type: 
text/html[\r][\n]"
2003/04/26 13:05:32:678 CEST [DEBUG] wire - -<< "Content-Length: 
1289[\r][\n]"
2003/04/26 13:05:32:678 CEST [DEBUG] wire - -<< "Expires: Sat, 26 Apr 
2003 11:05:32 GMT[\r][\n]"
2003/04/26 13:05:32:693 CEST [DEBUG] wire - -<< "X-Squid-Error: 
ERR_CACHE_ACCESS_DENIED 0[\r][\n]"
2003/04/26 13:05:32:693 CEST [DEBUG] wire - -<< "Proxy-Authenticate: 
NTLM[\r][\n]"
2003/04/26 13:05:32:693 CEST [DEBUG] wire - -<< "X-Cache: MISS from 
roland[\r][\n]"
2003/04/26 13:05:32:693 CEST [DEBUG] wire - -<< "Proxy-Connection: 
close[\r][\n]"
2003/04/26 13:05:32:693 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processResponseHeaders(HttpState, HttpConnection)
2003/04/26 13:05:32:693 CEST [TRACE] GetMethod - -enter 
GetMethod.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:05:32:693 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:05:32:693 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:05:32:693 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:05:32:693 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parse(String)
2003/04/26 13:05:32:693 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:05:32:724 CEST [DEBUG] HttpMethod - -Authorization required
2003/04/26 13:05:32:724 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processAuthenticationResponse(HttpState, HttpConnection)
2003/04/26 13:05:32:787 CEST [TRACE] HttpAuthenticator - -enter 
HttpAuthenticator.selectAuthScheme(Header[])
2003/04/26 13:05:32:849 CEST [TRACE] HttpAuthenticator - -enter 
HttpAuthenticator.authenticateProxy(AuthScheme, HttpMethod, HttpState)
2003/04/26 13:05:32:849 CEST [DEBUG] HttpAuthenticator - -Using 
'www.google.fr' authentication realm
2003/04/26 13:05:32:849 CEST [TRACE] HttpState - -enter 
HttpState.getCredentials(String, String
2003/04/26 13:05:32:849 CEST [TRACE] NTLMScheme - -enter 
NTLMScheme.authenticate(Credentials, String, String)
2003/04/26 13:05:32:849 CEST [TRACE] NTLMScheme - -enter 
NTLMScheme.authenticate(NTCredentials, String)
2003/04/26 13:05:32:943 CEST [DEBUG] HttpMethod - 
-HttpMethodBase.execute(): Server demanded authentication credentials, 
will try again.
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<!DOCTYPE HTML PUBLIC 
"-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<HTML><HEAD><META 
HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<TITLE>ERROR: Cache 
Access Denied</TITLE>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<STYLE 
type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "</HEAD>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<BODY>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<H1>ERROR</H1>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<H2>Cache Access 
Denied</H2>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<HR noshade 
size="1px">[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "While trying to 
retrieve the URL:[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<A 
HREF="http://www.google.fr/">http://www.google.fr/</A>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "The following error was 
encountered:[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<UL>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<LI>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "<STRONG>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "Cache Access Denied.[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "</STRONG>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "</UL>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:05:32:943 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "<P>Sorry, you are not 
currently allowed to request:[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "<PRE>    
http://www.google.fr/</PRE>[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "from this cache until 
you have authenticated yourself.[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "You need to use 
Netscape version 2.0 or greater, or Microsoft Internet[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "Explorer 3.0, or an 
HTTP/1.1 compliant browser for this to work.  Please[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "contact the <A 
HREF="mailto:root">cache administrator</a> if you have[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "difficulties auth"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "enticating yourself or 
[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "<A 
HREF="http://roland/cgi-bin/chpasswd.cgi">change</a> your default 
password.[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:05:32:959 CEST [DEBUG] wire - -<< "<BR clear="all">[\n]"
2003/04/26 13:05:32:974 CEST [DEBUG] wire - -<< "<HR noshade 
size="1px">[\n]"
2003/04/26 13:05:32:974 CEST [DEBUG] wire - -<< "<ADDRESS>[\n]"
2003/04/26 13:05:32:974 CEST [DEBUG] wire - -<< "Generated Sat, 26 Apr 
2003 11:05:32 GMT by roland (squid/2.5.STABLE1-20030121)[\n]"
2003/04/26 13:05:32:974 CEST [DEBUG] wire - -<< "</ADDRESS>[\n]"
2003/04/26 13:05:32:974 CEST [DEBUG] wire - -<< "</BODY></HTML>[\n]"
2003/04/26 13:05:32:974 CEST [DEBUG] HttpMethod - -Should close 
connection in response to Proxy-Connection: close

2003/04/26 13:05:32:974 CEST [TRACE] HttpConnection - -enter 
HttpConnection.close()
2003/04/26 13:05:32:974 CEST [TRACE] HttpConnection - -enter 
HttpConnection.closeSockedAndStreams()
2003/04/26 13:05:32:974 CEST [DEBUG] HttpMethod - -Execute loop try 2
2003/04/26 13:05:32:974 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processRequest(HttpState, HttpConnection)
2003/04/26 13:05:32:974 CEST [TRACE] HttpMethod - -Attempt number 1 to 
process request
2003/04/26 13:05:32:974 CEST [DEBUG] HttpMethod - -Opening the connection.
2003/04/26 13:05:32:974 CEST [TRACE] HttpConnection - -enter 
HttpConnection.open()
2003/04/26 13:05:32:974 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequest(HttpState, HttpConnection)
2003/04/26 13:05:32:974 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestLine(HttpState, HttpConnection)
2003/04/26 13:05:32:974 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.generateRequestLine(HttpConnection, String, String, 
String, String)
2003/04/26 13:05:32:974 CEST [DEBUG] wire - ->> "GET 
http://www.google.fr/ HTTP/1.0[\r][\n]"
2003/04/26 13:05:32:974 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:33:006 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:33:006 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:33:006 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
2003/04/26 13:05:33:006 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:05:33:006 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:05:33:006 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:33:006 CEST [DEBUG] HttpMethod - -Request to add Host 
header ignored: header already added
2003/04/26 13:05:33:006 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:33:006 CEST [TRACE] HttpState - -enter 
HttpState.getCookies()
2003/04/26 13:05:33:006 CEST [TRACE] CookieSpec - -enter 
CookieSpecBase.match(String, int, String, boolean, Cookie[])
2003/04/26 13:05:33:006 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:33:006 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addProxyAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:33:006 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addContentLengthRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:33:021 CEST [DEBUG] wire - ->> "Proxy-Connection: 
Keep-Alive[\r][\n]"
2003/04/26 13:05:33:021 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:33:021 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:33:021 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:33:021 CEST [DEBUG] wire - ->> "User-Agent: Jakarta 
Commons-HttpClient/2.0alpha3[\r][\n]"
2003/04/26 13:05:33:021 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:33:021 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:33:021 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:33:037 CEST [DEBUG] wire - ->> "Host: 
www.google.fr[\r][\n]"
2003/04/26 13:05:33:037 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:33:037 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:33:037 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:33:037 CEST [DEBUG] wire - ->> "Proxy-Authorization: 
NTLM 
TlRMTVNTUAABAAAABlIAAAQABAArAAAACwALACAAAAAxOTIuMTY4LjAuMUxZT04=[\r][\n]"
2003/04/26 13:05:33:037 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:33:037 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:33:037 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:33:037 CEST [TRACE] HttpConnection - -enter 
HttpConnection.writeLine()
2003/04/26 13:05:33:037 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:33:037 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:33:037 CEST [DEBUG] wire - ->> "[\r][\n]"
2003/04/26 13:05:33:037 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponse(HttpState, HttpConnection)
2003/04/26 13:05:33:037 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readStatusLine(HttpState, HttpConnection)
2003/04/26 13:05:33:037 CEST [TRACE] HttpConnection - -enter 
HttpConnection.readLine()
2003/04/26 13:05:33:037 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:037 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:084 CEST [DEBUG] wire - -<< "HTTP/1.0 407 Proxy 
Authentication Required[\r][\n]"
2003/04/26 13:05:33:084 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseHeaders(HttpState,HttpConnection)
2003/04/26 13:05:33:084 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HeaderParser.parseHeaders(HttpConnection, HeaderGroup)
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:084 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:099 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:099 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:099 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:099 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:099 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:099 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:33:099 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:33:099 CEST [DEBUG] wire - -<< "Server: 
squid/2.5.STABLE1-20030121[\r][\n]"
2003/04/26 13:05:33:099 CEST [DEBUG] wire - -<< "Mime-Version: 1.0[\r][\n]"
2003/04/26 13:05:33:099 CEST [DEBUG] wire - -<< "Date: Sat, 26 Apr 2003 
11:05:33 GMT[\r][\n]"
2003/04/26 13:05:33:099 CEST [DEBUG] wire - -<< "Content-Type: 
text/html[\r][\n]"
2003/04/26 13:05:33:099 CEST [DEBUG] wire - -<< "Content-Length: 
1289[\r][\n]"
2003/04/26 13:05:33:099 CEST [DEBUG] wire - -<< "Expires: Sat, 26 Apr 
2003 11:05:33 GMT[\r][\n]"
2003/04/26 13:05:33:099 CEST [DEBUG] wire - -<< "X-Squid-Error: 
ERR_CACHE_ACCESS_DENIED 0[\r][\n]"
2003/04/26 13:05:33:099 CEST [DEBUG] wire - -<< "Proxy-Authenticate: 
NTLM TlRMTVNTUAACAAAABAAEACgAAACCgkEAuIl3ZEI7SC8AAAAAAAAAAExZT04=[\r][\n]"
2003/04/26 13:05:33:099 CEST [DEBUG] wire - -<< "X-Cache: MISS from 
roland[\r][\n]"
2003/04/26 13:05:33:099 CEST [DEBUG] wire - -<< "Proxy-Connection: 
keep-alive[\r][\n]"
2003/04/26 13:05:33:099 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processResponseHeaders(HttpState, HttpConnection)
2003/04/26 13:05:33:099 CEST [TRACE] GetMethod - -enter 
GetMethod.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:05:33:099 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:05:33:099 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:05:33:099 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:05:33:099 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parse(String)
2003/04/26 13:05:33:099 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:05:33:099 CEST [DEBUG] HttpMethod - -Authorization required
2003/04/26 13:05:33:099 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processAuthenticationResponse(HttpState, HttpConnection)
2003/04/26 13:05:33:099 CEST [TRACE] HttpAuthenticator - -enter 
HttpAuthenticator.selectAuthScheme(Header[])
2003/04/26 13:05:33:131 CEST [TRACE] HttpAuthenticator - -enter 
HttpAuthenticator.authenticateProxy(AuthScheme, HttpMethod, HttpState)
2003/04/26 13:05:33:131 CEST [DEBUG] HttpAuthenticator - -Using 
'www.google.fr' authentication realm
2003/04/26 13:05:33:131 CEST [TRACE] HttpState - -enter 
HttpState.getCredentials(String, String
2003/04/26 13:05:33:146 CEST [TRACE] NTLMScheme - -enter 
NTLMScheme.authenticate(Credentials, String, String)
2003/04/26 13:05:33:146 CEST [TRACE] NTLMScheme - -enter 
NTLMScheme.authenticate(NTCredentials, String)
2003/04/26 13:05:34:037 CEST [DEBUG] HttpMethod - 
-HttpMethodBase.execute(): Server demanded authentication credentials, 
will try again.
2003/04/26 13:05:34:037 CEST [DEBUG] wire - -<< "<!DOCTYPE HTML PUBLIC 
"-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">[\n]"
2003/04/26 13:05:34:037 CEST [DEBUG] wire - -<< "<HTML><HEAD><META 
HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">[\n]"
2003/04/26 13:05:34:037 CEST [DEBUG] wire - -<< "<TITLE>ERROR: Cache 
Access Denied</TITLE>[\n]"
2003/04/26 13:05:34:037 CEST [DEBUG] wire - -<< "<STYLE 
type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>[\n]"
2003/04/26 13:05:34:037 CEST [DEBUG] wire - -<< "</HEAD>[\n]"
2003/04/26 13:05:34:037 CEST [DEBUG] wire - -<< "<BODY>[\n]"
2003/04/26 13:05:34:037 CEST [DEBUG] wire - -<< "<H1>ERROR</H1>[\n]"
2003/04/26 13:05:34:037 CEST [DEBUG] wire - -<< "<H2>Cache Access 
Denied</H2>[\n]"
2003/04/26 13:05:34:037 CEST [DEBUG] wire - -<< "<HR noshade 
size="1px">[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "While trying to 
retrieve the URL:[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "<A 
HREF="http://www.google.fr/">http://www.google.fr/</A>[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "The following error was 
encountered:[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "<UL>[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "<LI>[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "<STRONG>[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "Cache Access Denied.[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "</STRONG>[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "</UL>[\n]"
2003/04/26 13:05:34:053 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:05:34:068 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:05:34:068 CEST [DEBUG] wire - -<< "<P>Sorry, you are not 
currently allowed to request:[\n]"
2003/04/26 13:05:34:068 CEST [DEBUG] wire - -<< "<PRE>    
http://www.google.fr/</PRE>[\n]"
2003/04/26 13:05:34:068 CEST [DEBUG] wire - -<< "from this cache until 
you have authenticated yourself.[\n]"
2003/04/26 13:05:34:068 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:05:34:068 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:05:34:068 CEST [DEBUG] wire - -<< "<P>[\n]"
2003/04/26 13:05:34:068 CEST [DEBUG] wire - -<< "You need to use 
Netscape version 2.0 or greater, or Microsoft Internet[\n]"
2003/04/26 13:05:34:068 CEST [DEBUG] wire - -<< "Explorer 3.0, or an 
HTTP/1.1 compliant browser for this to work.  Please[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "contact the <A 
HREF="mailto:root">cache administrator</a> if you have[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "difficulties auth"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "enticating yourself or 
[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "<A 
HREF="http://roland/cgi-bin/chpasswd.cgi">change</a> your default 
password.[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "</P>[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "<BR clear="all">[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "<HR noshade 
size="1px">[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "<ADDRESS>[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "Generated Sat, 26 Apr 
2003 11:05:33 GMT by roland (squid/2.5.STABLE1-20030121)[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "</ADDRESS>[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] wire - -<< "</BODY></HTML>[\n]"
2003/04/26 13:05:34:084 CEST [DEBUG] HttpMethod - -Should NOT close 
connection in response to Proxy-Connection: keep-alive

2003/04/26 13:05:34:084 CEST [DEBUG] HttpMethod - -Execute loop try 3
2003/04/26 13:05:34:084 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processRequest(HttpState, HttpConnection)
2003/04/26 13:05:34:084 CEST [TRACE] HttpMethod - -Attempt number 1 to 
process request
2003/04/26 13:05:34:084 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequest(HttpState, HttpConnection)
2003/04/26 13:05:34:099 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestLine(HttpState, HttpConnection)
2003/04/26 13:05:34:099 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.generateRequestLine(HttpConnection, String, String, 
String, String)
2003/04/26 13:05:34:099 CEST [DEBUG] wire - ->> "GET 
http://www.google.fr/ HTTP/1.0[\r][\n]"
2003/04/26 13:05:34:099 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:34:099 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:34:099 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:34:099 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
2003/04/26 13:05:34:099 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:05:34:099 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection)
2003/04/26 13:05:34:099 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:34:099 CEST [DEBUG] HttpMethod - -Request to add Host 
header ignored: header already added
2003/04/26 13:05:34:099 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:34:115 CEST [TRACE] HttpState - -enter 
HttpState.getCookies()
2003/04/26 13:05:34:115 CEST [TRACE] CookieSpec - -enter 
CookieSpecBase.match(String, int, String, boolean, Cookie[])
2003/04/26 13:05:34:115 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:34:115 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addProxyAuthorizationRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:34:115 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.addContentLengthRequestHeader(HttpState, HttpConnection)
2003/04/26 13:05:34:115 CEST [DEBUG] wire - ->> "Proxy-Connection: 
Keep-Alive[\r][\n]"
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:34:115 CEST [DEBUG] wire - ->> "User-Agent: Jakarta 
Commons-HttpClient/2.0alpha3[\r][\n]"
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:34:115 CEST [DEBUG] wire - ->> "Host: 
www.google.fr[\r][\n]"
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:34:115 CEST [DEBUG] wire - ->> "Proxy-Authorization: 
NTLM 
TlRMTVNTUAADAAAAGAAYAFgAAAAAAAAAcAAAAAQABABAAAAACQAJAEQAAAALAAsATQAAAAAAAABwAAAABlIAAExZT05HVUlST05ORVQxOTIuMTY4LjAuMaqGnrFm/phZwfmsol/cGxV274uSzaX8tQ==[\r][\n]"
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.print(String)
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.writeLine()
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[])
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.write(byte[], int, int)
2003/04/26 13:05:34:115 CEST [DEBUG] wire - ->> "[\r][\n]"
2003/04/26 13:05:34:115 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponse(HttpState, HttpConnection)
2003/04/26 13:05:34:115 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readStatusLine(HttpState, HttpConnection)
2003/04/26 13:05:34:115 CEST [TRACE] HttpConnection - -enter 
HttpConnection.readLine()
2003/04/26 13:05:34:115 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:34:115 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:34:459 CEST [DEBUG] wire - -<< "HTTP/1.0 200 OK[\r][\n]"
2003/04/26 13:05:34:459 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseHeaders(HttpState,HttpConnection)
2003/04/26 13:05:34:459 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:05:34:459 CEST [TRACE] HttpParser - -enter 
HeaderParser.parseHeaders(HttpConnection, HeaderGroup)
2003/04/26 13:05:34:459 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:34:459 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:34:459 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:34:459 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:34:459 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:34:459 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:34:459 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:34:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:34:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:34:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:34:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:34:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:34:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:34:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:34:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:34:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:34:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readLine()
2003/04/26 13:05:34:474 CEST [TRACE] HttpParser - -enter 
HttpParser.readRawLine()
2003/04/26 13:05:34:474 CEST [DEBUG] wire - -<< "Date: Sat, 26 Apr 2003 
11:05:34 GMT[\r][\n]"
2003/04/26 13:05:34:474 CEST [DEBUG] wire - -<< "Set-Cookie: 
PREF=ID=147451b07ec86f49:LD=fr:TM=1051355134:LM=1051355134:S=D7OSIV2vii9_0htx; 
expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.fr[\r][\n]"
2003/04/26 13:05:34:474 CEST [DEBUG] wire - -<< "Cache-Control: 
private[\r][\n]"
2003/04/26 13:05:34:474 CEST [DEBUG] wire - -<< "Content-Type: 
text/html[\r][\n]"
2003/04/26 13:05:34:474 CEST [DEBUG] wire - -<< "Server: GWS/2.0[\r][\n]"
2003/04/26 13:05:34:474 CEST [DEBUG] wire - -<< "Content-Length: 
3232[\r][\n]"
2003/04/26 13:05:34:474 CEST [DEBUG] wire - -<< "X-Cache: MISS from 
roland[\r][\n]"
2003/04/26 13:05:34:474 CEST [DEBUG] wire - -<< "Proxy-Connection: 
keep-alive[\r][\n]"
2003/04/26 13:05:34:521 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.processResponseHeaders(HttpState, HttpConnection)
2003/04/26 13:05:34:521 CEST [TRACE] CookieSpec - -enter 
CookieSpecBase.parse(String, port, path, boolean, String)
2003/04/26 13:05:34:521 CEST [TRACE] CookieSpec - -enter 
CookieSpecBase.parse(String, port, path, boolean, Header)
2003/04/26 13:05:34:521 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parse(String)
2003/04/26 13:05:34:521 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:05:34:521 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:05:34:521 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:05:34:521 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:05:34:553 CEST [TRACE] Cookie - -enter Cookie(String, 
String, String, String, Date, boolean)
2003/04/26 13:05:34:584 CEST [TRACE] CookieSpec - -enter 
RFC2109Spec.validate(String, int, String, boolean, Cookie)
2003/04/26 13:05:34:584 CEST [TRACE] CookieSpec - -enter 
CookieSpecBase.validate(String, port, path, boolean, Cookie)
2003/04/26 13:05:34:584 CEST [TRACE] HttpState - -enter 
HttpState.addCookie(Cookie)
2003/04/26 13:05:34:584 CEST [TRACE] CookieSpec - -enter 
RFC2109Spec.formatCookie(Cookie)
2003/04/26 13:05:34:584 CEST [TRACE] CookieSpec - -enter 
RFC2109Spec.formatCookieAsVer(Cookie)
2003/04/26 13:05:34:584 CEST [DEBUG] HttpMethod - -Cookie accepted: 
"$Version=0; 
PREF=ID=147451b07ec86f49:LD=fr:TM=1051355134:LM=1051355134:S=D7OSIV2vii9_0htx; 
$Domain=.google.fr; $Path=/"
2003/04/26 13:05:34:584 CEST [TRACE] GetMethod - -enter 
GetMethod.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:05:34:584 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:05:34:584 CEST [TRACE] HttpMethod - -enter 
HttpMethodBase.readResponseBody(HttpState, HttpConnection)
2003/04/26 13:05:34:584 CEST [TRACE] HttpConnection - -enter 
HttpConnection.getResponseInputStream()
2003/04/26 13:05:34:584 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parse(String)
2003/04/26 13:05:34:584 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:05:34:584 CEST [TRACE] GetMethod - -enter 
GetMethod.getResponseBody()
2003/04/26 13:05:34:584 CEST [TRACE] GetMethod - -enter 
GetMethod.getResponseBodyAsStream()
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "<html><head><meta 
http-equiv="content-type" content="text/html; 
charset=ISO-8859-1"><title>Google</title><style><!--[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< 
"body,td,a,p,.h{font-family:arial,sans-serif;}[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< ".h{font-size: 20px;}[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< 
".q{text-decoration:none; color:#0000cc;}[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "//-->[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "</style>[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "<script>[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "<!--[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "function 
sf(){document.f.q.focus();}[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "// -->[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "</script>[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "</head><body 
bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 
onLoad=sf()><center><table cellpadding=0 cellspacing=0 border=0><tr><td 
align=right valign=bottom><img src=images/hp0.gif width=158 height=78 
alt="Google"></td><td valign=bottom><img src=images/hp1.gif width=50 
height=78 alt=""></td><td valign=bottom><img src=images/hp2.gif width=68 
height=78 alt=""></td></tr><tr><td class=h align=right 
valign=top><b></b></td><td valign=top><img src=images/hp3.gif width=50 
height=32 alt=""></td><td valign=top class=h><font color=#6f6f6f 
style=font-size:16px><b>France</b></font></td></tr></table><br><table 
border=0 cellspacing=0 cellpadding=0><tr><td width=15>&nbsp;</td><td 
id=0 bgcolor=#3366cc align=center width=120 nowrap><font color=#ffffff 
size=-1><b>Web</b></font></td><td width=15>&nbsp;</td><td i"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "d=1 bgcolor=#efefef 
align=center width=120 nowrap onClick="" 
style=cursor:pointer;cursor:hand;><a id=1a class=q 
href="/imghp?hl=fr&tab=wi&ie=UTF-8"><font 
size=-1>Images</font></a></td><td width=15>&nbsp;</td><td id=2 
bgcolor=#efefef align=center width=120 nowrap onClick="" 
style=cursor:pointer;cursor:hand;><a id=2a class=q 
href="/grphp?hl=fr&tab=wg&ie=UTF-8"><font 
size=-1>Groupes</font></a></td><td width=15>&nbsp;</td><td id=3 
bgcolor=#efefef align=center width=120 nowrap onClick="" 
style=cursor:pointer;cursor:hand;><a id=3a class=q 
href="/dirhp?hl=fr&tab=wd&ie=UTF-8"><font 
size=-1>R[0xfffd]pertoire</font></a></td><td 
width=15>&nbsp;</td></tr><tr><td colspan=10 bgcolor=#3366cc><img width=1 
height=1 alt=""></td></tr></table><br><form action="/search" 
name=f><span id=hf></span><table cellspacing=0 cellpadding=0><tr 
valign=middle><td width=75>&nbsp;</td><td align=center><input 
maxLength=256 size=55 name=q value="">[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "<script>[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "document.f.q.focus();[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "</script>[\n]"
2003/04/26 13:05:34:599 CEST [DEBUG] wire - -<< "<input type=hidden 
name=ie value="ISO-8859-1"><input name=hl type=hidden 
value=fr><br><input type=submit value="Recherche Google" 
name=btnG><input type=submit value="J'ai de la chance" 
name=btnI></td><td valign=top nowrap><font size=-2>&nbsp;&#8226;&nbsp;<a 
href=/advanced_search?hl=fr>Recherche 
avanc[0xfffd]e</a><br>&nbsp;&#8226;&nbsp;<a 
href=/preferences?hl=fr>Pr[0xfffd]f[0xfffd]rences</a><br>&nbsp;&#8226;&nbsp;<a 
href=/language_tools?hl=fr>Outils 
linguistiques</a></font></td></tr><tr><td colspan=3 align=center><font 
size=-1>Rechercher dans : <input type=radio name=meta value="" checked> 
Web<input type=radio name=meta value="lr=lang_fr" > Pages francophones 
<input type=radio name=meta value="cr=countryFR" > Pages : 
France</font></td></tr></table></form><p><font 
size=-1><p></font><br><br><font size=-1><a 
href=/intl/fr/ads/>Publicit[0xfffd]</a> - <a 
href=http://toolbar.google.com/intl/fr/>Google Toolbar</a> - <a 
href=/intl/fr/about.html>[0xfffd] propos de Google</a> - <b><a 
href=http://www.google.com/ncr>Google.com</a></b></font><p><font 
size=-2>&copy;2003 Google - Nombre de pages Web recens[0xfffd]es par 
Google : 3,083,324,652.</font></p></center></body></html>"
2003/04/26 13:05:34:599 CEST [DEBUG] HttpMethod - -Should NOT close 
connection in response to Proxy-Connection: keep-alive

2003/04/26 13:05:34:599 CEST [TRACE] HttpConnection - -enter 
HttpConnection.releaseConnection()
2003/04/26 13:05:34:599 CEST [DEBUG] HttpMethod - -buffering response body
2003/04/26 13:05:34:599 CEST [TRACE] HttpMethod - -enter 
getContentCharSet( Header contentheader )
2003/04/26 13:05:34:599 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parse(String)
2003/04/26 13:05:34:599 CEST [TRACE] HeaderElement - -enter 
HeaderElement.parsePair(char[], int, int)
2003/04/26 13:05:34:599 CEST [DEBUG] HttpMethod - -Default charset used: 
ISO-8859-1
200
<html><head>........................

============================== END 
==============================================


Oleg Kalnichevski wrote:

>Fabien,
>
>I have committed some proxy related tweaks to the CVS HEAD a few minutes
>ago. Could you please re-test your application one more time? If it
>still does not work, I would need to examine the wire & debug log that
>your application produces in order to be able to see what it really
>going on there.
>
>You can reopen the following bug report and attach the log to it
>
>http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19226 
>
>Cheers
>
>Oleg
>
>
>
>
>On Sat, 2003-04-26 at 12:38, Fabien Guironnet wrote:
>  
>
>>Oleg,
>>
>>
>>I've got the current CVS HEAD and test again my program.
>>If I'dont add the line "method.setRequestHeader("Proxy-Connection", 
>>"Keep-Alive");" before execute the mthod, my program still not works...
>>I don't know if we must do this for all NTLM proxies or just for Squid...
>>I'll try to install an other NTLM proxy than Squid to test again.
>>
>>Hope that qan help you!
>>
>>    Fabien
>>
>>
>>
>>Oleg Kalnichevski wrote:
>>
>>    
>>
>>>Fabien,
>>>
>>>Could you please test your application against the current CVS HEAD and
>>>let us know if the problem still persists?
>>>
>>>Oleg
>>>
>>>
>>>On Fri, 2003-04-25 at 19:07, Fabien Guironnet wrote:
>>> 
>>>
>>>      
>>>
>>>> Adrian,
>>>>
>>>>I'm using Squid for NTLM auth because my office use it so we can only 
>>>>use MS products; that's why I make tests with Squid.
>>>>But I don't think it's a bug from Squid because I've tried with other 
>>>>NTLM clients.
>>>>I think I've resolved my problem!
>>>>The problem is that connection with the proxy was closed.
>>>>I've patched the method "shouldCloseConnection()" of the class 
>>>>"HttpMethodBase.java" with the patch found in the bug description 
>>>>(*Bug#:*19226 <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19226>) 
>>>>(http://nagoya.apache.org/bugzilla/showattachment.cgi?attach_id=5967).
>>>>With this patch my program still not work, because the patch just 
>>>>resolve the problem of connection with a server and not with a proxy; 
>>>>I've add test for "proxy-connection" and now it seems to work.
>>>>
>>>>======================================================
>>>> protected boolean shouldCloseConnection() {
>>>>       Header connectionHeader = getResponseHeader("connection");
>>>>
>>>>       // ------ /!\ ------
>>>>       if (connectionHeader == null) {
>>>>           // no header for "connection" : try with "proxy-connection"
>>>>           connectionHeader = getResponseHeader("proxy-connection");
>>>>       }
>>>>       // ------ /!\ ------
>>>>      
>>>>       // handle the connection header value, if present
>>>>       if (connectionHeader != null) {
>>>>           if (connectionHeader.getValue().equalsIgnoreCase("close")) {
>>>>               LOG.debug("Should close connection since \"Connection: 
>>>>close\" was found.");
>>>>               return true;
>>>>           } else if 
>>>>(connectionHeader.getValue().equalsIgnoreCase("keep-alive")) {
>>>>               LOG.debug("Should NOT close connection since 
>>>>\"Connection: keep-alive\" "
>>>>                   + "was found.");
>>>>               return false;
>>>>           } else {
>>>>               LOG.debug("Unknown \"Connection\" header value: " + 
>>>>connectionHeader.getValue()
>>>>                   + ". Resorting to protocol version default close 
>>>>policy.");
>>>>           }
>>>>       }
>>>>
>>>>       // missing or invalid connection header, do the default
>>>>       if (http11) {
>>>>           LOG.debug("Should NOT close connection, using HTTP/1.1.");
>>>>       } else {
>>>>           LOG.debug("Should close connection, using HTTP/1.0.");
>>>>       }
>>>>      
>>>>       return !http11;
>>>>   }
>>>>======================================================
>>>>
>>>>Hope that can help you,
>>>>
>>>>   Fabien
>>>>
>>>>
>>>>
>>>>Adrian Sutton wrote:
>>>>
>>>>   
>>>>
>>>>        
>>>>
>>>>>Hmm, that sounds a lot like a bug in the proxy server.  I have to  
>>>>>wonder why you're using NTLM authentication with SQUID but anyway...
>>>>>
>>>>>My first inclination on problems with HttpClient are notoriously  
>>>>>inaccurate, so it would be good if you could provide me with a full  
>>>>>wire log of the transaction as per the instructions at  
>>>>>http://jakarta.apache.org/commons/httpclient/logging.html
>>>>>
>>>>>There are so many NTLM complaints that have come through today that  
>>>>>there must be something wrong with NTLM in HttpClient though.  The 
>>>>>log  should tell us more.
>>>>>
>>>>>Regards,
>>>>>
>>>>>Adrian Sutton.
>>>>>
>>>>>On Friday, April 25, 2003, at 04:19  AM, Fabien Guironnet wrote:
>>>>>
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>>>Hello,
>>>>>>
>>>>>>I'm trying to authenticate with an NTLM Proxy server (SQUID 2.5), 
>>>>>>but  I still get the error message :
>>>>>>24 avr. 2003 19:39:23 org.apache.commons.httpclient.HttpMethodBase  
>>>>>>processAuthenticationResponse
>>>>>>INFO: Already tried to authenticate to  
>>>>>>"www.google.com#TlRMTVNTUAACAAAABAAEACgAAACCgkEAu3QkmX3Fo24AAAAAAAAAAEx
>>>>>>ZT04=" but still receiving 407.
>>>>>>
>>>>>>I don't think the problem come from Squid because I can use IE and  
>>>>>>NTLM Authorization Proxy Server 0.9.7 (Python) from Dmitry A. > 
>>>>>>Rozmanov.
>>>>>>I've tested the 3 NTLM messages generated by HTTPClient (with NTLM  
>>>>>>Authorization Proxy Server) and they seems to be OK.
>>>>>>Can the problem come from a connection that isn't keeped alive? or I  
>>>>>>don't use the HTTPClient correctly?
>>>>>>
>>>>>>Here is my code (I've tried HTTPClient package 2.0 Alpha 3 
>>>>>>(20030225)  and the nightly source drop from 20030423) :
>>>>>>///////////////////////// BEGIN ///////////////////////////////
>>>>>>
>>>>>>import org.apache.commons.httpclient.*;
>>>>>>import org.apache.commons.httpclient.methods.*;
>>>>>>import java.io.IOException;
>>>>>>
>>>>>>public class Test{
>>>>>>
>>>>>>  public static void main(String[] arg) {          HttpState state 
>>>>>>=  new HttpState();
>>>>>>      HttpClient client = new HttpClient();
>>>>>>      NTCredentials cred = new NTCredentials("nom_utilisateur",  
>>>>>>"mot_passe", "192.168.0.1", "DOMAINE");
>>>>>>      HostConfiguration host = new HostConfiguration();
>>>>>>      HttpMethod method = new GetMethod();
>>>>>>            host.setProxy("192.168.0.2", 3128);
>>>>>>      host.setHost("www.google.com", 80, "http");
>>>>>>      client.setHostConfiguration(host);
>>>>>>      client.getState().setProxyCredentials(null, cred);
>>>>>>                    try {
>>>>>>          client.executeMethod(method);
>>>>>>          System.out.println(method.getStatusCode() + "\n" +  
>>>>>>method.getResponseBodyAsString());
>>>>>>      } catch (IOException e) {
>>>>>>          System.out.println("IOException : " + e.getMessage());
>>>>>>          return;
>>>>>>      }
>>>>>>  }
>>>>>>}
>>>>>>
>>>>>>/////////////////////////////// END /////////////////////////////////
>>>>>>
>>>>>>
>>>>>>
>>>>>>Thanks for your help!
>>>>>>
>>>>>>  Fabien
>>>>>>
>>>>>>
>>>>>>---------------------------------------------------------------------
>>>>>>To unsubscribe, e-mail:  
>>>>>>commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>>>>>For additional commands, e-mail:  
>>>>>>commons-httpclient-dev-help@jakarta.apache.org
>>>>>>
>>>>>>       
>>>>>>
>>>>>>            
>>>>>>
>>>>>---------------------------------------------------------------------
>>>>>To unsubscribe, e-mail: 
>>>>>commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>>>>For additional commands, e-mail: 
>>>>>commons-httpclient-dev-help@jakarta.apache.org
>>>>>
>>>>>
>>>>>
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
>>>>
>>>>   
>>>>
>>>>        
>>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
>>>
>>>
>>>
>>> 
>>>
>>>      
>>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
>>
>>    
>>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
>
>
>
>  
>




Re: NTLM Proxy Authentication : still receiving 407

Posted by Oleg Kalnichevski <o....@dplanet.ch>.
Fabien,

I have committed some proxy related tweaks to the CVS HEAD a few minutes
ago. Could you please re-test your application one more time? If it
still does not work, I would need to examine the wire & debug log that
your application produces in order to be able to see what it really
going on there.

You can reopen the following bug report and attach the log to it

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19226 

Cheers

Oleg




On Sat, 2003-04-26 at 12:38, Fabien Guironnet wrote:
> Oleg,
> 
> 
> I've got the current CVS HEAD and test again my program.
> If I'dont add the line "method.setRequestHeader("Proxy-Connection", 
> "Keep-Alive");" before execute the mthod, my program still not works...
> I don't know if we must do this for all NTLM proxies or just for Squid...
> I'll try to install an other NTLM proxy than Squid to test again.
> 
> Hope that qan help you!
> 
>     Fabien
> 
> 
> 
> Oleg Kalnichevski wrote:
> 
> >Fabien,
> >
> >Could you please test your application against the current CVS HEAD and
> >let us know if the problem still persists?
> >
> >Oleg
> >
> >
> >On Fri, 2003-04-25 at 19:07, Fabien Guironnet wrote:
> >  
> >
> >>  Adrian,
> >>
> >>I'm using Squid for NTLM auth because my office use it so we can only 
> >>use MS products; that's why I make tests with Squid.
> >>But I don't think it's a bug from Squid because I've tried with other 
> >>NTLM clients.
> >>I think I've resolved my problem!
> >>The problem is that connection with the proxy was closed.
> >>I've patched the method "shouldCloseConnection()" of the class 
> >>"HttpMethodBase.java" with the patch found in the bug description 
> >>(*Bug#:*19226 <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19226>) 
> >>(http://nagoya.apache.org/bugzilla/showattachment.cgi?attach_id=5967).
> >>With this patch my program still not work, because the patch just 
> >>resolve the problem of connection with a server and not with a proxy; 
> >>I've add test for "proxy-connection" and now it seems to work.
> >>
> >>======================================================
> >>  protected boolean shouldCloseConnection() {
> >>        Header connectionHeader = getResponseHeader("connection");
> >>
> >>        // ------ /!\ ------
> >>        if (connectionHeader == null) {
> >>            // no header for "connection" : try with "proxy-connection"
> >>            connectionHeader = getResponseHeader("proxy-connection");
> >>        }
> >>        // ------ /!\ ------
> >>       
> >>        // handle the connection header value, if present
> >>        if (connectionHeader != null) {
> >>            if (connectionHeader.getValue().equalsIgnoreCase("close")) {
> >>                LOG.debug("Should close connection since \"Connection: 
> >>close\" was found.");
> >>                return true;
> >>            } else if 
> >>(connectionHeader.getValue().equalsIgnoreCase("keep-alive")) {
> >>                LOG.debug("Should NOT close connection since 
> >>\"Connection: keep-alive\" "
> >>                    + "was found.");
> >>                return false;
> >>            } else {
> >>                LOG.debug("Unknown \"Connection\" header value: " + 
> >>connectionHeader.getValue()
> >>                    + ". Resorting to protocol version default close 
> >>policy.");
> >>            }
> >>        }
> >>
> >>        // missing or invalid connection header, do the default
> >>        if (http11) {
> >>            LOG.debug("Should NOT close connection, using HTTP/1.1.");
> >>        } else {
> >>            LOG.debug("Should close connection, using HTTP/1.0.");
> >>        }
> >>       
> >>        return !http11;
> >>    }
> >>======================================================
> >>
> >>Hope that can help you,
> >>
> >>    Fabien
> >>
> >>
> >>
> >>Adrian Sutton wrote:
> >>
> >>    
> >>
> >>>Hmm, that sounds a lot like a bug in the proxy server.  I have to  
> >>>wonder why you're using NTLM authentication with SQUID but anyway...
> >>>
> >>>My first inclination on problems with HttpClient are notoriously  
> >>>inaccurate, so it would be good if you could provide me with a full  
> >>>wire log of the transaction as per the instructions at  
> >>>http://jakarta.apache.org/commons/httpclient/logging.html
> >>>
> >>>There are so many NTLM complaints that have come through today that  
> >>>there must be something wrong with NTLM in HttpClient though.  The 
> >>>log  should tell us more.
> >>>
> >>>Regards,
> >>>
> >>>Adrian Sutton.
> >>>
> >>>On Friday, April 25, 2003, at 04:19  AM, Fabien Guironnet wrote:
> >>>
> >>>      
> >>>
> >>>> Hello,
> >>>>
> >>>>I'm trying to authenticate with an NTLM Proxy server (SQUID 2.5), 
> >>>>but  I still get the error message :
> >>>>24 avr. 2003 19:39:23 org.apache.commons.httpclient.HttpMethodBase  
> >>>>processAuthenticationResponse
> >>>>INFO: Already tried to authenticate to  
> >>>>"www.google.com#TlRMTVNTUAACAAAABAAEACgAAACCgkEAu3QkmX3Fo24AAAAAAAAAAEx
> >>>>ZT04=" but still receiving 407.
> >>>>
> >>>>I don't think the problem come from Squid because I can use IE and  
> >>>>NTLM Authorization Proxy Server 0.9.7 (Python) from Dmitry A. > 
> >>>>Rozmanov.
> >>>>I've tested the 3 NTLM messages generated by HTTPClient (with NTLM  
> >>>>Authorization Proxy Server) and they seems to be OK.
> >>>>Can the problem come from a connection that isn't keeped alive? or I  
> >>>>don't use the HTTPClient correctly?
> >>>>
> >>>>Here is my code (I've tried HTTPClient package 2.0 Alpha 3 
> >>>>(20030225)  and the nightly source drop from 20030423) :
> >>>>///////////////////////// BEGIN ///////////////////////////////
> >>>>
> >>>>import org.apache.commons.httpclient.*;
> >>>>import org.apache.commons.httpclient.methods.*;
> >>>>import java.io.IOException;
> >>>>
> >>>>public class Test{
> >>>>
> >>>>   public static void main(String[] arg) {          HttpState state 
> >>>>=  new HttpState();
> >>>>       HttpClient client = new HttpClient();
> >>>>       NTCredentials cred = new NTCredentials("nom_utilisateur",  
> >>>>"mot_passe", "192.168.0.1", "DOMAINE");
> >>>>       HostConfiguration host = new HostConfiguration();
> >>>>       HttpMethod method = new GetMethod();
> >>>>             host.setProxy("192.168.0.2", 3128);
> >>>>       host.setHost("www.google.com", 80, "http");
> >>>>       client.setHostConfiguration(host);
> >>>>       client.getState().setProxyCredentials(null, cred);
> >>>>                     try {
> >>>>           client.executeMethod(method);
> >>>>           System.out.println(method.getStatusCode() + "\n" +  
> >>>>method.getResponseBodyAsString());
> >>>>       } catch (IOException e) {
> >>>>           System.out.println("IOException : " + e.getMessage());
> >>>>           return;
> >>>>       }
> >>>>   }
> >>>>}
> >>>>
> >>>>/////////////////////////////// END /////////////////////////////////
> >>>>
> >>>>
> >>>>
> >>>>Thanks for your help!
> >>>>
> >>>>   Fabien
> >>>>
> >>>>
> >>>>---------------------------------------------------------------------
> >>>>To unsubscribe, e-mail:  
> >>>>commons-httpclient-dev-unsubscribe@jakarta.apache.org
> >>>>For additional commands, e-mail:  
> >>>>commons-httpclient-dev-help@jakarta.apache.org
> >>>>
> >>>>        
> >>>>
> >>>---------------------------------------------------------------------
> >>>To unsubscribe, e-mail: 
> >>>commons-httpclient-dev-unsubscribe@jakarta.apache.org
> >>>For additional commands, e-mail: 
> >>>commons-httpclient-dev-help@jakarta.apache.org
> >>>
> >>>
> >>>
> >>>      
> >>>
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
> >>For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
> >>
> >>    
> >>
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
> >For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
> >
> >
> >
> >  
> >
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
> 


Re: NTLM Proxy Authentication : still receiving 407

Posted by Fabien Guironnet <fg...@free.fr>.
Oleg,


I've got the current CVS HEAD and test again my program.
If I'dont add the line "method.setRequestHeader("Proxy-Connection", 
"Keep-Alive");" before execute the mthod, my program still not works...
I don't know if we must do this for all NTLM proxies or just for Squid...
I'll try to install an other NTLM proxy than Squid to test again.

Hope that qan help you!

    Fabien



Oleg Kalnichevski wrote:

>Fabien,
>
>Could you please test your application against the current CVS HEAD and
>let us know if the problem still persists?
>
>Oleg
>
>
>On Fri, 2003-04-25 at 19:07, Fabien Guironnet wrote:
>  
>
>>  Adrian,
>>
>>I'm using Squid for NTLM auth because my office use it so we can only 
>>use MS products; that's why I make tests with Squid.
>>But I don't think it's a bug from Squid because I've tried with other 
>>NTLM clients.
>>I think I've resolved my problem!
>>The problem is that connection with the proxy was closed.
>>I've patched the method "shouldCloseConnection()" of the class 
>>"HttpMethodBase.java" with the patch found in the bug description 
>>(*Bug#:*19226 <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19226>) 
>>(http://nagoya.apache.org/bugzilla/showattachment.cgi?attach_id=5967).
>>With this patch my program still not work, because the patch just 
>>resolve the problem of connection with a server and not with a proxy; 
>>I've add test for "proxy-connection" and now it seems to work.
>>
>>======================================================
>>  protected boolean shouldCloseConnection() {
>>        Header connectionHeader = getResponseHeader("connection");
>>
>>        // ------ /!\ ------
>>        if (connectionHeader == null) {
>>            // no header for "connection" : try with "proxy-connection"
>>            connectionHeader = getResponseHeader("proxy-connection");
>>        }
>>        // ------ /!\ ------
>>       
>>        // handle the connection header value, if present
>>        if (connectionHeader != null) {
>>            if (connectionHeader.getValue().equalsIgnoreCase("close")) {
>>                LOG.debug("Should close connection since \"Connection: 
>>close\" was found.");
>>                return true;
>>            } else if 
>>(connectionHeader.getValue().equalsIgnoreCase("keep-alive")) {
>>                LOG.debug("Should NOT close connection since 
>>\"Connection: keep-alive\" "
>>                    + "was found.");
>>                return false;
>>            } else {
>>                LOG.debug("Unknown \"Connection\" header value: " + 
>>connectionHeader.getValue()
>>                    + ". Resorting to protocol version default close 
>>policy.");
>>            }
>>        }
>>
>>        // missing or invalid connection header, do the default
>>        if (http11) {
>>            LOG.debug("Should NOT close connection, using HTTP/1.1.");
>>        } else {
>>            LOG.debug("Should close connection, using HTTP/1.0.");
>>        }
>>       
>>        return !http11;
>>    }
>>======================================================
>>
>>Hope that can help you,
>>
>>    Fabien
>>
>>
>>
>>Adrian Sutton wrote:
>>
>>    
>>
>>>Hmm, that sounds a lot like a bug in the proxy server.  I have to  
>>>wonder why you're using NTLM authentication with SQUID but anyway...
>>>
>>>My first inclination on problems with HttpClient are notoriously  
>>>inaccurate, so it would be good if you could provide me with a full  
>>>wire log of the transaction as per the instructions at  
>>>http://jakarta.apache.org/commons/httpclient/logging.html
>>>
>>>There are so many NTLM complaints that have come through today that  
>>>there must be something wrong with NTLM in HttpClient though.  The 
>>>log  should tell us more.
>>>
>>>Regards,
>>>
>>>Adrian Sutton.
>>>
>>>On Friday, April 25, 2003, at 04:19  AM, Fabien Guironnet wrote:
>>>
>>>      
>>>
>>>> Hello,
>>>>
>>>>I'm trying to authenticate with an NTLM Proxy server (SQUID 2.5), 
>>>>but  I still get the error message :
>>>>24 avr. 2003 19:39:23 org.apache.commons.httpclient.HttpMethodBase  
>>>>processAuthenticationResponse
>>>>INFO: Already tried to authenticate to  
>>>>"www.google.com#TlRMTVNTUAACAAAABAAEACgAAACCgkEAu3QkmX3Fo24AAAAAAAAAAEx
>>>>ZT04=" but still receiving 407.
>>>>
>>>>I don't think the problem come from Squid because I can use IE and  
>>>>NTLM Authorization Proxy Server 0.9.7 (Python) from Dmitry A. > 
>>>>Rozmanov.
>>>>I've tested the 3 NTLM messages generated by HTTPClient (with NTLM  
>>>>Authorization Proxy Server) and they seems to be OK.
>>>>Can the problem come from a connection that isn't keeped alive? or I  
>>>>don't use the HTTPClient correctly?
>>>>
>>>>Here is my code (I've tried HTTPClient package 2.0 Alpha 3 
>>>>(20030225)  and the nightly source drop from 20030423) :
>>>>///////////////////////// BEGIN ///////////////////////////////
>>>>
>>>>import org.apache.commons.httpclient.*;
>>>>import org.apache.commons.httpclient.methods.*;
>>>>import java.io.IOException;
>>>>
>>>>public class Test{
>>>>
>>>>   public static void main(String[] arg) {          HttpState state 
>>>>=  new HttpState();
>>>>       HttpClient client = new HttpClient();
>>>>       NTCredentials cred = new NTCredentials("nom_utilisateur",  
>>>>"mot_passe", "192.168.0.1", "DOMAINE");
>>>>       HostConfiguration host = new HostConfiguration();
>>>>       HttpMethod method = new GetMethod();
>>>>             host.setProxy("192.168.0.2", 3128);
>>>>       host.setHost("www.google.com", 80, "http");
>>>>       client.setHostConfiguration(host);
>>>>       client.getState().setProxyCredentials(null, cred);
>>>>                     try {
>>>>           client.executeMethod(method);
>>>>           System.out.println(method.getStatusCode() + "\n" +  
>>>>method.getResponseBodyAsString());
>>>>       } catch (IOException e) {
>>>>           System.out.println("IOException : " + e.getMessage());
>>>>           return;
>>>>       }
>>>>   }
>>>>}
>>>>
>>>>/////////////////////////////// END /////////////////////////////////
>>>>
>>>>
>>>>
>>>>Thanks for your help!
>>>>
>>>>   Fabien
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail:  
>>>>commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail:  
>>>>commons-httpclient-dev-help@jakarta.apache.org
>>>>
>>>>        
>>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: 
>>>commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: 
>>>commons-httpclient-dev-help@jakarta.apache.org
>>>
>>>
>>>
>>>      
>>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
>>
>>    
>>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
>
>
>
>  
>




Re: NTLM Proxy Authentication : still receiving 407

Posted by Oleg Kalnichevski <o....@dplanet.ch>.
Fabien,

Could you please test your application against the current CVS HEAD and
let us know if the problem still persists?

Oleg


On Fri, 2003-04-25 at 19:07, Fabien Guironnet wrote:
>   Adrian,
> 
> I'm using Squid for NTLM auth because my office use it so we can only 
> use MS products; that's why I make tests with Squid.
> But I don't think it's a bug from Squid because I've tried with other 
> NTLM clients.
> I think I've resolved my problem!
> The problem is that connection with the proxy was closed.
> I've patched the method "shouldCloseConnection()" of the class 
> "HttpMethodBase.java" with the patch found in the bug description 
> (*Bug#:*19226 <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19226>) 
> (http://nagoya.apache.org/bugzilla/showattachment.cgi?attach_id=5967).
> With this patch my program still not work, because the patch just 
> resolve the problem of connection with a server and not with a proxy; 
> I've add test for "proxy-connection" and now it seems to work.
> 
> ======================================================
>   protected boolean shouldCloseConnection() {
>         Header connectionHeader = getResponseHeader("connection");
> 
>         // ------ /!\ ------
>         if (connectionHeader == null) {
>             // no header for "connection" : try with "proxy-connection"
>             connectionHeader = getResponseHeader("proxy-connection");
>         }
>         // ------ /!\ ------
>        
>         // handle the connection header value, if present
>         if (connectionHeader != null) {
>             if (connectionHeader.getValue().equalsIgnoreCase("close")) {
>                 LOG.debug("Should close connection since \"Connection: 
> close\" was found.");
>                 return true;
>             } else if 
> (connectionHeader.getValue().equalsIgnoreCase("keep-alive")) {
>                 LOG.debug("Should NOT close connection since 
> \"Connection: keep-alive\" "
>                     + "was found.");
>                 return false;
>             } else {
>                 LOG.debug("Unknown \"Connection\" header value: " + 
> connectionHeader.getValue()
>                     + ". Resorting to protocol version default close 
> policy.");
>             }
>         }
> 
>         // missing or invalid connection header, do the default
>         if (http11) {
>             LOG.debug("Should NOT close connection, using HTTP/1.1.");
>         } else {
>             LOG.debug("Should close connection, using HTTP/1.0.");
>         }
>        
>         return !http11;
>     }
> ======================================================
> 
> Hope that can help you,
> 
>     Fabien
> 
> 
> 
> Adrian Sutton wrote:
> 
> > Hmm, that sounds a lot like a bug in the proxy server.  I have to  
> > wonder why you're using NTLM authentication with SQUID but anyway...
> >
> > My first inclination on problems with HttpClient are notoriously  
> > inaccurate, so it would be good if you could provide me with a full  
> > wire log of the transaction as per the instructions at  
> > http://jakarta.apache.org/commons/httpclient/logging.html
> >
> > There are so many NTLM complaints that have come through today that  
> > there must be something wrong with NTLM in HttpClient though.  The 
> > log  should tell us more.
> >
> > Regards,
> >
> > Adrian Sutton.
> >
> > On Friday, April 25, 2003, at 04:19  AM, Fabien Guironnet wrote:
> >
> >>  Hello,
> >>
> >> I'm trying to authenticate with an NTLM Proxy server (SQUID 2.5), 
> >> but  I still get the error message :
> >> 24 avr. 2003 19:39:23 org.apache.commons.httpclient.HttpMethodBase  
> >> processAuthenticationResponse
> >> INFO: Already tried to authenticate to  
> >> "www.google.com#TlRMTVNTUAACAAAABAAEACgAAACCgkEAu3QkmX3Fo24AAAAAAAAAAEx
> >> ZT04=" but still receiving 407.
> >>
> >> I don't think the problem come from Squid because I can use IE and  
> >> NTLM Authorization Proxy Server 0.9.7 (Python) from Dmitry A. > 
> >> Rozmanov.
> >> I've tested the 3 NTLM messages generated by HTTPClient (with NTLM  
> >> Authorization Proxy Server) and they seems to be OK.
> >> Can the problem come from a connection that isn't keeped alive? or I  
> >> don't use the HTTPClient correctly?
> >>
> >> Here is my code (I've tried HTTPClient package 2.0 Alpha 3 
> >> (20030225)  and the nightly source drop from 20030423) :
> >> ///////////////////////// BEGIN ///////////////////////////////
> >>
> >> import org.apache.commons.httpclient.*;
> >> import org.apache.commons.httpclient.methods.*;
> >> import java.io.IOException;
> >>
> >> public class Test{
> >>
> >>    public static void main(String[] arg) {          HttpState state 
> >> =  new HttpState();
> >>        HttpClient client = new HttpClient();
> >>        NTCredentials cred = new NTCredentials("nom_utilisateur",  
> >> "mot_passe", "192.168.0.1", "DOMAINE");
> >>        HostConfiguration host = new HostConfiguration();
> >>        HttpMethod method = new GetMethod();
> >>              host.setProxy("192.168.0.2", 3128);
> >>        host.setHost("www.google.com", 80, "http");
> >>        client.setHostConfiguration(host);
> >>        client.getState().setProxyCredentials(null, cred);
> >>                      try {
> >>            client.executeMethod(method);
> >>            System.out.println(method.getStatusCode() + "\n" +  
> >> method.getResponseBodyAsString());
> >>        } catch (IOException e) {
> >>            System.out.println("IOException : " + e.getMessage());
> >>            return;
> >>        }
> >>    }
> >> }
> >>
> >> /////////////////////////////// END /////////////////////////////////
> >>
> >>
> >>
> >> Thanks for your help!
> >>
> >>    Fabien
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail:  
> >> commons-httpclient-dev-unsubscribe@jakarta.apache.org
> >> For additional commands, e-mail:  
> >> commons-httpclient-dev-help@jakarta.apache.org
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: 
> > commons-httpclient-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: 
> > commons-httpclient-dev-help@jakarta.apache.org
> >
> >
> >
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
> 


Re: NTLM Proxy Authentication : still receiving 407

Posted by Fabien Guironnet <fg...@free.fr>.
  Sorry I've forgotten...
I must add the header "Proxy-Connection: Keep-Alive" to my method before 
execute it. I don't know if we must do this for all NTLM proxies or just 
for Squid...

    Fabien



Fabien Guironnet wrote:

>  Adrian,
>
> I'm using Squid for NTLM auth because my office use it so we can only 
> use MS products; that's why I make tests with Squid.
> But I don't think it's a bug from Squid because I've tried with other 
> NTLM clients.
> I think I've resolved my problem!
> The problem is that connection with the proxy was closed.
> I've patched the method "shouldCloseConnection()" of the class 
> "HttpMethodBase.java" with the patch found in the bug description 
> (*Bug#:*19226 
> <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19226>) 
> (http://nagoya.apache.org/bugzilla/showattachment.cgi?attach_id=5967).
> With this patch my program still not work, because the patch just 
> resolve the problem of connection with a server and not with a proxy; 
> I've add test for "proxy-connection" and now it seems to work.
>
> ======================================================
>  protected boolean shouldCloseConnection() {
>        Header connectionHeader = getResponseHeader("connection");
>
>        // ------ /!\ ------
>        if (connectionHeader == null) {
>            // no header for "connection" : try with "proxy-connection"
>            connectionHeader = getResponseHeader("proxy-connection");
>        }
>        // ------ /!\ ------
>              // handle the connection header value, if present
>        if (connectionHeader != null) {
>            if (connectionHeader.getValue().equalsIgnoreCase("close")) {
>                LOG.debug("Should close connection since \"Connection: 
> close\" was found.");
>                return true;
>            } else if 
> (connectionHeader.getValue().equalsIgnoreCase("keep-alive")) {
>                LOG.debug("Should NOT close connection since 
> \"Connection: keep-alive\" "
>                    + "was found.");
>                return false;
>            } else {
>                LOG.debug("Unknown \"Connection\" header value: " + 
> connectionHeader.getValue()
>                    + ". Resorting to protocol version default close 
> policy.");
>            }
>        }
>
>        // missing or invalid connection header, do the default
>        if (http11) {
>            LOG.debug("Should NOT close connection, using HTTP/1.1.");
>        } else {
>            LOG.debug("Should close connection, using HTTP/1.0.");
>        }
>              return !http11;
>    }
> ======================================================
>
> Hope that can help you,
>
>    Fabien
>
>
>
> Adrian Sutton wrote:
>
>> Hmm, that sounds a lot like a bug in the proxy server.  I have to  
>> wonder why you're using NTLM authentication with SQUID but anyway...
>>
>> My first inclination on problems with HttpClient are notoriously  
>> inaccurate, so it would be good if you could provide me with a full  
>> wire log of the transaction as per the instructions at  
>> http://jakarta.apache.org/commons/httpclient/logging.html
>>
>> There are so many NTLM complaints that have come through today that  
>> there must be something wrong with NTLM in HttpClient though.  The 
>> log  should tell us more.
>>
>> Regards,
>>
>> Adrian Sutton.
>>
>> On Friday, April 25, 2003, at 04:19  AM, Fabien Guironnet wrote:
>>
>>>  Hello,
>>>
>>> I'm trying to authenticate with an NTLM Proxy server (SQUID 2.5), 
>>> but  I still get the error message :
>>> 24 avr. 2003 19:39:23 org.apache.commons.httpclient.HttpMethodBase  
>>> processAuthenticationResponse
>>> INFO: Already tried to authenticate to  
>>> "www.google.com#TlRMTVNTUAACAAAABAAEACgAAACCgkEAu3QkmX3Fo24AAAAAAAAAAEx 
>>> ZT04=" but still receiving 407.
>>>
>>> I don't think the problem come from Squid because I can use IE and  
>>> NTLM Authorization Proxy Server 0.9.7 (Python) from Dmitry A. > 
>>> Rozmanov.
>>> I've tested the 3 NTLM messages generated by HTTPClient (with NTLM  
>>> Authorization Proxy Server) and they seems to be OK.
>>> Can the problem come from a connection that isn't keeped alive? or 
>>> I  don't use the HTTPClient correctly?
>>>
>>> Here is my code (I've tried HTTPClient package 2.0 Alpha 3 
>>> (20030225)  and the nightly source drop from 20030423) :
>>> ///////////////////////// BEGIN ///////////////////////////////
>>>
>>> import org.apache.commons.httpclient.*;
>>> import org.apache.commons.httpclient.methods.*;
>>> import java.io.IOException;
>>>
>>> public class Test{
>>>
>>>    public static void main(String[] arg) {          HttpState state 
>>> =  new HttpState();
>>>        HttpClient client = new HttpClient();
>>>        NTCredentials cred = new NTCredentials("nom_utilisateur",  
>>> "mot_passe", "192.168.0.1", "DOMAINE");
>>>        HostConfiguration host = new HostConfiguration();
>>>        HttpMethod method = new GetMethod();
>>>              host.setProxy("192.168.0.2", 3128);
>>>        host.setHost("www.google.com", 80, "http");
>>>        client.setHostConfiguration(host);
>>>        client.getState().setProxyCredentials(null, cred);
>>>                      try {
>>>            client.executeMethod(method);
>>>            System.out.println(method.getStatusCode() + "\n" +  
>>> method.getResponseBodyAsString());
>>>        } catch (IOException e) {
>>>            System.out.println("IOException : " + e.getMessage());
>>>            return;
>>>        }
>>>    }
>>> }
>>>
>>> /////////////////////////////// END /////////////////////////////////
>>>
>>>
>>>
>>> Thanks for your help!
>>>
>>>    Fabien
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail:  
>>> commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail:  
>>> commons-httpclient-dev-help@jakarta.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: 
>> commons-httpclient-dev-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: 
>> commons-httpclient-dev-help@jakarta.apache.org
>>
>>
>>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: 
> commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: 
> commons-httpclient-dev-help@jakarta.apache.org
>
>
>




Re: NTLM Proxy Authentication : still receiving 407

Posted by Michael Becke <be...@u.washington.edu>.
Good it sounds like we're on the right track then.  The patch included 
by Oleg today in bug #19250 does essentially the same as you describe 
below.  If you get a chance it would be nice if you could try that one 
as well.  Thanks for your help.

Mike

Fabien Guironnet wrote:
>  Adrian,
> 
> I'm using Squid for NTLM auth because my office use it so we can only 
> use MS products; that's why I make tests with Squid.
> But I don't think it's a bug from Squid because I've tried with other 
> NTLM clients.
> I think I've resolved my problem!
> The problem is that connection with the proxy was closed.
> I've patched the method "shouldCloseConnection()" of the class 
> "HttpMethodBase.java" with the patch found in the bug description 
> (*Bug#:*19226 <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19226>) 
> (http://nagoya.apache.org/bugzilla/showattachment.cgi?attach_id=5967).
> With this patch my program still not work, because the patch just 
> resolve the problem of connection with a server and not with a proxy; 
> I've add test for "proxy-connection" and now it seems to work.
> 
> ======================================================
>  protected boolean shouldCloseConnection() {
>        Header connectionHeader = getResponseHeader("connection");
> 
>        // ------ /!\ ------
>        if (connectionHeader == null) {
>            // no header for "connection" : try with "proxy-connection"
>            connectionHeader = getResponseHeader("proxy-connection");
>        }
>        // ------ /!\ ------
>              // handle the connection header value, if present
>        if (connectionHeader != null) {
>            if (connectionHeader.getValue().equalsIgnoreCase("close")) {
>                LOG.debug("Should close connection since \"Connection: 
> close\" was found.");
>                return true;
>            } else if 
> (connectionHeader.getValue().equalsIgnoreCase("keep-alive")) {
>                LOG.debug("Should NOT close connection since 
> \"Connection: keep-alive\" "
>                    + "was found.");
>                return false;
>            } else {
>                LOG.debug("Unknown \"Connection\" header value: " + 
> connectionHeader.getValue()
>                    + ". Resorting to protocol version default close 
> policy.");
>            }
>        }
> 
>        // missing or invalid connection header, do the default
>        if (http11) {
>            LOG.debug("Should NOT close connection, using HTTP/1.1.");
>        } else {
>            LOG.debug("Should close connection, using HTTP/1.0.");
>        }
>              return !http11;
>    }
> ======================================================
> 
> Hope that can help you,
> 
>    Fabien
> 
> 
> 
> Adrian Sutton wrote:
> 
>> Hmm, that sounds a lot like a bug in the proxy server.  I have to  
>> wonder why you're using NTLM authentication with SQUID but anyway...
>>
>> My first inclination on problems with HttpClient are notoriously  
>> inaccurate, so it would be good if you could provide me with a full  
>> wire log of the transaction as per the instructions at  
>> http://jakarta.apache.org/commons/httpclient/logging.html
>>
>> There are so many NTLM complaints that have come through today that  
>> there must be something wrong with NTLM in HttpClient though.  The 
>> log  should tell us more.
>>
>> Regards,
>>
>> Adrian Sutton.
>>
>> On Friday, April 25, 2003, at 04:19  AM, Fabien Guironnet wrote:
>>
>>>  Hello,
>>>
>>> I'm trying to authenticate with an NTLM Proxy server (SQUID 2.5), 
>>> but  I still get the error message :
>>> 24 avr. 2003 19:39:23 org.apache.commons.httpclient.HttpMethodBase  
>>> processAuthenticationResponse
>>> INFO: Already tried to authenticate to  
>>> "www.google.com#TlRMTVNTUAACAAAABAAEACgAAACCgkEAu3QkmX3Fo24AAAAAAAAAAEx 
>>> ZT04=" but still receiving 407.
>>>
>>> I don't think the problem come from Squid because I can use IE and  
>>> NTLM Authorization Proxy Server 0.9.7 (Python) from Dmitry A. > 
>>> Rozmanov.
>>> I've tested the 3 NTLM messages generated by HTTPClient (with NTLM  
>>> Authorization Proxy Server) and they seems to be OK.
>>> Can the problem come from a connection that isn't keeped alive? or I  
>>> don't use the HTTPClient correctly?
>>>
>>> Here is my code (I've tried HTTPClient package 2.0 Alpha 3 
>>> (20030225)  and the nightly source drop from 20030423) :
>>> ///////////////////////// BEGIN ///////////////////////////////
>>>
>>> import org.apache.commons.httpclient.*;
>>> import org.apache.commons.httpclient.methods.*;
>>> import java.io.IOException;
>>>
>>> public class Test{
>>>
>>>    public static void main(String[] arg) {          HttpState state 
>>> =  new HttpState();
>>>        HttpClient client = new HttpClient();
>>>        NTCredentials cred = new NTCredentials("nom_utilisateur",  
>>> "mot_passe", "192.168.0.1", "DOMAINE");
>>>        HostConfiguration host = new HostConfiguration();
>>>        HttpMethod method = new GetMethod();
>>>              host.setProxy("192.168.0.2", 3128);
>>>        host.setHost("www.google.com", 80, "http");
>>>        client.setHostConfiguration(host);
>>>        client.getState().setProxyCredentials(null, cred);
>>>                      try {
>>>            client.executeMethod(method);
>>>            System.out.println(method.getStatusCode() + "\n" +  
>>> method.getResponseBodyAsString());
>>>        } catch (IOException e) {
>>>            System.out.println("IOException : " + e.getMessage());
>>>            return;
>>>        }
>>>    }
>>> }
>>>
>>> /////////////////////////////// END /////////////////////////////////
>>>
>>>
>>>
>>> Thanks for your help!
>>>
>>>    Fabien
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail:  
>>> commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail:  
>>> commons-httpclient-dev-help@jakarta.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: 
>> commons-httpclient-dev-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: 
>> commons-httpclient-dev-help@jakarta.apache.org
>>
>>
>>
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: 
> commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: 
> commons-httpclient-dev-help@jakarta.apache.org
> 


Re: NTLM Proxy Authentication : still receiving 407

Posted by Fabien Guironnet <fg...@free.fr>.
  Adrian,

I'm using Squid for NTLM auth because my office use it so we can only 
use MS products; that's why I make tests with Squid.
But I don't think it's a bug from Squid because I've tried with other 
NTLM clients.
I think I've resolved my problem!
The problem is that connection with the proxy was closed.
I've patched the method "shouldCloseConnection()" of the class 
"HttpMethodBase.java" with the patch found in the bug description 
(*Bug#:*19226 <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19226>) 
(http://nagoya.apache.org/bugzilla/showattachment.cgi?attach_id=5967).
With this patch my program still not work, because the patch just 
resolve the problem of connection with a server and not with a proxy; 
I've add test for "proxy-connection" and now it seems to work.

======================================================
  protected boolean shouldCloseConnection() {
        Header connectionHeader = getResponseHeader("connection");

        // ------ /!\ ------
        if (connectionHeader == null) {
            // no header for "connection" : try with "proxy-connection"
            connectionHeader = getResponseHeader("proxy-connection");
        }
        // ------ /!\ ------
       
        // handle the connection header value, if present
        if (connectionHeader != null) {
            if (connectionHeader.getValue().equalsIgnoreCase("close")) {
                LOG.debug("Should close connection since \"Connection: 
close\" was found.");
                return true;
            } else if 
(connectionHeader.getValue().equalsIgnoreCase("keep-alive")) {
                LOG.debug("Should NOT close connection since 
\"Connection: keep-alive\" "
                    + "was found.");
                return false;
            } else {
                LOG.debug("Unknown \"Connection\" header value: " + 
connectionHeader.getValue()
                    + ". Resorting to protocol version default close 
policy.");
            }
        }

        // missing or invalid connection header, do the default
        if (http11) {
            LOG.debug("Should NOT close connection, using HTTP/1.1.");
        } else {
            LOG.debug("Should close connection, using HTTP/1.0.");
        }
       
        return !http11;
    }
======================================================

Hope that can help you,

    Fabien



Adrian Sutton wrote:

> Hmm, that sounds a lot like a bug in the proxy server.  I have to  
> wonder why you're using NTLM authentication with SQUID but anyway...
>
> My first inclination on problems with HttpClient are notoriously  
> inaccurate, so it would be good if you could provide me with a full  
> wire log of the transaction as per the instructions at  
> http://jakarta.apache.org/commons/httpclient/logging.html
>
> There are so many NTLM complaints that have come through today that  
> there must be something wrong with NTLM in HttpClient though.  The 
> log  should tell us more.
>
> Regards,
>
> Adrian Sutton.
>
> On Friday, April 25, 2003, at 04:19  AM, Fabien Guironnet wrote:
>
>>  Hello,
>>
>> I'm trying to authenticate with an NTLM Proxy server (SQUID 2.5), 
>> but  I still get the error message :
>> 24 avr. 2003 19:39:23 org.apache.commons.httpclient.HttpMethodBase  
>> processAuthenticationResponse
>> INFO: Already tried to authenticate to  
>> "www.google.com#TlRMTVNTUAACAAAABAAEACgAAACCgkEAu3QkmX3Fo24AAAAAAAAAAEx 
>> ZT04=" but still receiving 407.
>>
>> I don't think the problem come from Squid because I can use IE and  
>> NTLM Authorization Proxy Server 0.9.7 (Python) from Dmitry A. > 
>> Rozmanov.
>> I've tested the 3 NTLM messages generated by HTTPClient (with NTLM  
>> Authorization Proxy Server) and they seems to be OK.
>> Can the problem come from a connection that isn't keeped alive? or I  
>> don't use the HTTPClient correctly?
>>
>> Here is my code (I've tried HTTPClient package 2.0 Alpha 3 
>> (20030225)  and the nightly source drop from 20030423) :
>> ///////////////////////// BEGIN ///////////////////////////////
>>
>> import org.apache.commons.httpclient.*;
>> import org.apache.commons.httpclient.methods.*;
>> import java.io.IOException;
>>
>> public class Test{
>>
>>    public static void main(String[] arg) {          HttpState state 
>> =  new HttpState();
>>        HttpClient client = new HttpClient();
>>        NTCredentials cred = new NTCredentials("nom_utilisateur",  
>> "mot_passe", "192.168.0.1", "DOMAINE");
>>        HostConfiguration host = new HostConfiguration();
>>        HttpMethod method = new GetMethod();
>>              host.setProxy("192.168.0.2", 3128);
>>        host.setHost("www.google.com", 80, "http");
>>        client.setHostConfiguration(host);
>>        client.getState().setProxyCredentials(null, cred);
>>                      try {
>>            client.executeMethod(method);
>>            System.out.println(method.getStatusCode() + "\n" +  
>> method.getResponseBodyAsString());
>>        } catch (IOException e) {
>>            System.out.println("IOException : " + e.getMessage());
>>            return;
>>        }
>>    }
>> }
>>
>> /////////////////////////////// END /////////////////////////////////
>>
>>
>>
>> Thanks for your help!
>>
>>    Fabien
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:  
>> commons-httpclient-dev-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail:  
>> commons-httpclient-dev-help@jakarta.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: 
> commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: 
> commons-httpclient-dev-help@jakarta.apache.org
>
>
>




Re: NTLM Proxy Authentication : still receiving 407

Posted by Adrian Sutton <ad...@intencha.com>.
Hmm, that sounds a lot like a bug in the proxy server.  I have to  
wonder why you're using NTLM authentication with SQUID but anyway...

My first inclination on problems with HttpClient are notoriously  
inaccurate, so it would be good if you could provide me with a full  
wire log of the transaction as per the instructions at  
http://jakarta.apache.org/commons/httpclient/logging.html

There are so many NTLM complaints that have come through today that  
there must be something wrong with NTLM in HttpClient though.  The log  
should tell us more.

Regards,

Adrian Sutton.

On Friday, April 25, 2003, at 04:19  AM, Fabien Guironnet wrote:

>  Hello,
>
> I'm trying to authenticate with an NTLM Proxy server (SQUID 2.5), but  
> I still get the error message :
> 24 avr. 2003 19:39:23 org.apache.commons.httpclient.HttpMethodBase  
> processAuthenticationResponse
> INFO: Already tried to authenticate to  
> "www.google.com#TlRMTVNTUAACAAAABAAEACgAAACCgkEAu3QkmX3Fo24AAAAAAAAAAEx 
> ZT04=" but still receiving 407.
>
> I don't think the problem come from Squid because I can use IE and  
> NTLM Authorization Proxy Server 0.9.7 (Python) from Dmitry A. > Rozmanov.
> I've tested the 3 NTLM messages generated by HTTPClient (with NTLM  
> Authorization Proxy Server) and they seems to be OK.
> Can the problem come from a connection that isn't keeped alive? or I  
> don't use the HTTPClient correctly?
>
> Here is my code (I've tried HTTPClient package 2.0 Alpha 3 (20030225)  
> and the nightly source drop from 20030423) :
> ///////////////////////// BEGIN ///////////////////////////////
>
> import org.apache.commons.httpclient.*;
> import org.apache.commons.httpclient.methods.*;
> import java.io.IOException;
>
> public class Test{
>
>    public static void main(String[] arg) {          HttpState state =  
> new HttpState();
>        HttpClient client = new HttpClient();
>        NTCredentials cred = new NTCredentials("nom_utilisateur",  
> "mot_passe", "192.168.0.1", "DOMAINE");
>        HostConfiguration host = new HostConfiguration();
>        HttpMethod method = new GetMethod();
>              host.setProxy("192.168.0.2", 3128);
>        host.setHost("www.google.com", 80, "http");
>        client.setHostConfiguration(host);
>        client.getState().setProxyCredentials(null, cred);
>                      try {
>            client.executeMethod(method);
>            System.out.println(method.getStatusCode() + "\n" +  
> method.getResponseBodyAsString());
>        } catch (IOException e) {
>            System.out.println("IOException : " + e.getMessage());
>            return;
>        }
>    }
> }
>
> /////////////////////////////// END /////////////////////////////////
>
>
>
> Thanks for your help!
>
>    Fabien
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:  
> commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:  
> commons-httpclient-dev-help@jakarta.apache.org
>