You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Burke, Christopher" <cb...@carlson.com> on 2004/09/30 17:14:40 UTC
RE: HttpClient + HTTPS + NTLM Authentication = HTTP/1.1 401AccessDenied
Oleg,
Thanks for your continued help. I have done a few additional items.
First, I have upgraded to HttpClient 3.0 Alpha 2. Second, I have
implemented the 'expect: continue' handshake. This has not fixed the
problem.
Really no idea what do to know.
Code:
NTCredentials creds = new NTCredentials(uid,pwd,host,domain);
HttpClient client = new HttpClient();
MultipartPostMethod mpPostMethod = new MultipartPostMethod(url);
mpPostMethod.getParams().setParameter(HttpMethodParams.USE_EXPECT_CONTIN
UE, new Boolean(true));
client.getState().setCredentials(new AuthScope(host,port), creds);
File f = new File("C:\\secureHttp\\anotherLog.log");
mpPostMethod.addParameter("F1",f.getName(),f);
//mpPostMethod.addParameter("F1",f);
int statusCode = client.executeMethod(mpPostMethod);
System.out.println("Status Line: " + mpPostMethod.getStatusLine());
System.out.println("Status Code: " + statusCode);
mpPostMethod.releaseConnection();
Debug Output:
2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Java version: 1.4.2_05
2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Java vendor: Sun
Microsystems I
nc.
2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Java class path:
.;..;C:\j2sdk1
.4.2_05\bin;C:\apacheCommons3\commons-httpclient-3.0-alpha2.jar;C:\apach
eCommons
\commons-logging-api.jar;C:\apacheCommons\commons-logging.jar;C:\apacheC
ommons\c
ommons-codec-1.3.jar
2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Operating system name:
Windows
XP
2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Operating system
architecture:
x86
2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Operating system
version: 5.1
2004/09/30 10:05:24:949 CDT [DEBUG] HttpClient - SUN 1.42: SUN (DSA
key/paramete
r generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509
certificates;
JKS keystore; PKIX CertPathValidator; PKIX CertPathBuilder; LDAP,
Collection Ce
rtStores)
2004/09/30 10:05:24:949 CDT [DEBUG] HttpClient - SunJSSE 1.42: Sun JSSE
provider
(implements RSA Signatures, PKCS12, SunX509 key/trust factories, SSLv3,
TLSv1)
2004/09/30 10:05:24:949 CDT [DEBUG] HttpClient - SunRsaSign 1.42: SUN's
provider
for RSA signatures
2004/09/30 10:05:24:949 CDT [DEBUG] HttpClient - SunJCE 1.42: SunJCE
Provider (i
mplements DES, Triple DES, AES, Blowfish, PBE, Diffie-Hellman, HMAC-MD5,
HMAC-SH
A1)
2004/09/30 10:05:24:949 CDT [DEBUG] HttpClient - SunJGSS 1.0: Sun
(Kerberos v5)
2004/09/30 10:05:24:949 CDT [DEBUG] DefaultHttpParams - Set parameter
http.usera
gent = Jakarta Commons-HttpClient/3.0-alpha2
2004/09/30 10:05:24:959 CDT [DEBUG] DefaultHttpParams - Set parameter
http.proto
col.version = HTTP/1.1
2004/09/30 10:05:24:959 CDT [DEBUG] DefaultHttpParams - Set parameter
http.conne
ction-manager.class = class
org.apache.commons.httpclient.SimpleHttpConnectionMa
nager
2004/09/30 10:05:24:959 CDT [DEBUG] DefaultHttpParams - Set parameter
http.proto
col.cookie-policy = rfc2109
2004/09/30 10:05:24:969 CDT [DEBUG] DefaultHttpParams - Set parameter
http.proto
col.element-charset = US-ASCII
2004/09/30 10:05:24:969 CDT [DEBUG] DefaultHttpParams - Set parameter
http.proto
col.content-charset = ISO-8859-1
2004/09/30 10:05:24:969 CDT [DEBUG] DefaultHttpParams - Set parameter
http.metho
d.retry-handler =
org.apache.commons.httpclient.DefaultHttpMethodRetryHandler@19
7a37c
2004/09/30 10:05:24:969 CDT [DEBUG] DefaultHttpParams - Set parameter
http.datep
arser.patterns = [EEE, dd MMM yyyy HH:mm:ss zzz, EEEE, dd-MMM-yy
HH:mm:ss zzz, E
EE MMM d HH:mm:ss yyyy, EEE, dd-MMM-yyyy HH:mm:ss z, EEE, dd-MMM-yyyy
HH-mm-ss z
, EEE, dd MMM yy HH:mm:ss z, EEE dd-MMM-yyyy HH:mm:ss z, EEE dd MMM yyyy
HH:mm:s
s z, EEE dd-MMM-yyyy HH-mm-ss z, EEE dd-MMM-yy HH:mm:ss z, EEE dd MMM yy
HH:mm:s
s z, EEE,dd-MMM-yy HH:mm:ss z, EEE,dd-MMM-yyyy HH:mm:ss z, EEE,
dd-MM-yyyy HH:mm
:ss z]
2004/09/30 10:05:25:029 CDT [DEBUG] DefaultHttpParams - Set parameter
http.proto
col.expect-continue = true
2004/09/30 10:05:25:200 CDT [DEBUG] header - >> "POST
/carlsontest/siteman.asp?u
=Y&d=c:\im\ HTTP/1.1[\r][\n]"
2004/09/30 10:05:25:210 CDT [DEBUG] HttpMethodBase - Adding Host request
header
2004/09/30 10:05:25:220 CDT [DEBUG] header - >> "User-Agent: Jakarta
Commons-Htt
pClient/3.0-alpha2[\r][\n]"
2004/09/30 10:05:25:220 CDT [DEBUG] header - >> "Host:
keystone.ibanksystems.com
[\r][\n]"
2004/09/30 10:05:25:220 CDT [DEBUG] header - >> "Expect:
100-continue[\r][\n]"
2004/09/30 10:05:25:220 CDT [DEBUG] header - >> "Content-Length:
965[\r][\n]"
2004/09/30 10:05:25:220 CDT [DEBUG] header - >> "Content-Type:
multipart/form-da
ta; boundary=----------------314159265358979323846[\r][\n]"
2004/09/30 10:05:27:353 CDT [DEBUG] header - >> "[\r][\n]"
2004/09/30 10:05:30:357 CDT [INFO] HttpMethodBase - 100 (continue) read
timeout.
Resume sending the request
2004/09/30 10:05:30:407 CDT [DEBUG] header - << "HTTP/1.1 401 Access
Denied[\r][
\n]"
2004/09/30 10:05:30:417 CDT [DEBUG] header - << "Server:
Microsoft-IIS/5.0[\r][\
n]"
2004/09/30 10:05:30:417 CDT [DEBUG] header - << "Date: Thu, 30 Sep 2004
15:05:27
GMT[\r][\n]"
2004/09/30 10:05:30:417 CDT [DEBUG] header - << "WWW-Authenticate:
Negotiate[\r]
[\n]"
2004/09/30 10:05:30:417 CDT [DEBUG] header - << "WWW-Authenticate:
NTLM[\r][\n]"
2004/09/30 10:05:30:417 CDT [DEBUG] header - << "Connection:
close[\r][\n]"
2004/09/30 10:05:30:417 CDT [DEBUG] header - << "Content-Length:
4431[\r][\n]"
2004/09/30 10:05:30:417 CDT [DEBUG] header - << "Content-Type:
text/html[\r][\n]
"
2004/09/30 10:05:30:417 CDT [DEBUG] HttpMethodDirector - Authorization
required
2004/09/30 10:05:30:457 CDT [DEBUG] AuthChallengeProcessor - Supported
authentic
ation schemes in the order of preference: [ntlm, digest, basic]
2004/09/30 10:05:30:457 CDT [INFO] AuthChallengeProcessor - ntlm
authentication
scheme selected
2004/09/30 10:05:30:457 CDT [DEBUG] AuthChallengeProcessor - Using
authenticatio
n scheme: ntlm
2004/09/30 10:05:30:457 CDT [DEBUG] HttpMethodBase - Should close
connection in
response to Connection: close
2004/09/30 10:05:30:457 CDT [DEBUG] HttpConnection - Connection is
locked. Call
to releaseConnection() ignored.
2004/09/30 10:05:30:457 CDT [DEBUG] HttpMethodDirector - Authenticating
with NTL
M <any realm>@keystone.ibanksystems.com:443
2004/09/30 10:05:30:497 CDT [DEBUG] header - >> "POST
/carlsontest/siteman.asp?u
=Y&d=c:\im\ HTTP/1.1[\r][\n]"
2004/09/30 10:05:30:497 CDT [DEBUG] HttpMethodBase - Adding Host request
header
2004/09/30 10:05:30:497 CDT [DEBUG] header - >> "User-Agent: Jakarta
Commons-Htt
pClient/3.0-alpha2[\r][\n]"
2004/09/30 10:05:30:497 CDT [DEBUG] header - >> "Content-Length:
965[\r][\n]"
2004/09/30 10:05:30:497 CDT [DEBUG] header - >> "Authorization: NTLM
TlRMTVNTUAA
BAAAABlIAAAwADAA5AAAAGQAZACAAAABLRVlTVE9ORS5JQkFOS1NZU1RFTVMuQ09NSUJBTkt
TWVNURU1
T[\r][\n]"
2004/09/30 10:05:30:507 CDT [DEBUG] header - >> "Host:
keystone.ibanksystems.com
[\r][\n]"
2004/09/30 10:05:30:507 CDT [DEBUG] header - >> "Expect:
100-continue[\r][\n]"
2004/09/30 10:05:30:507 CDT [DEBUG] header - >> "Content-Type:
multipart/form-da
ta; boundary=----------------314159265358979323846[\r][\n]"
2004/09/30 10:05:30:537 CDT [DEBUG] header - >> "[\r][\n]"
2004/09/30 10:05:33:532 CDT [INFO] HttpMethodBase - 100 (continue) read
timeout.
Resume sending the request
2004/09/30 10:05:33:602 CDT [DEBUG] header - << "HTTP/1.1 401 Access
Denied[\r][
\n]"
2004/09/30 10:05:33:602 CDT [DEBUG] header - << "Server:
Microsoft-IIS/5.0[\r][\
n]"
2004/09/30 10:05:33:602 CDT [DEBUG] header - << "Date: Thu, 30 Sep 2004
15:05:30
GMT[\r][\n]"
2004/09/30 10:05:33:602 CDT [DEBUG] header - << "WWW-Authenticate: NTLM
TlRMTVNT
UAACAAAAAwADADAAAAAGAoEAw4VfLPqTzPIAAAAAAAAAADoAOgAzAAAAQVRTAgAGAEEAVABT
AAEAEgBJ
AEIAQQBOAEsAVwBFAEIAMQADABIAaQBiAGEAbgBrAHcAZQBiADEAAAAAAA==[\r][\n]"
2004/09/30 10:05:33:602 CDT [DEBUG] header - << "Content-Length:
4033[\r][\n]"
2004/09/30 10:05:33:602 CDT [DEBUG] header - << "Content-Type:
text/html[\r][\n]
"
2004/09/30 10:05:33:602 CDT [DEBUG] HttpMethodDirector - Authorization
required
2004/09/30 10:05:33:602 CDT [DEBUG] AuthChallengeProcessor - Using
authenticatio
n scheme: ntlm
2004/09/30 10:05:33:612 CDT [DEBUG] HttpMethodBase - Resorting to
protocol versi
on default close connection policy
2004/09/30 10:05:33:612 CDT [DEBUG] HttpMethodBase - Should NOT close
connection
, using HTTP/1.1
2004/09/30 10:05:33:612 CDT [DEBUG] HttpConnection - Connection is
locked. Call
to releaseConnection() ignored.
2004/09/30 10:05:33:612 CDT [DEBUG] HttpMethodDirector - Authenticating
with NTL
M <any realm>@keystone.ibanksystems.com:443
2004/09/30 10:05:34:032 CDT [DEBUG] header - >> "POST
/carlsontest/siteman.asp?u
=Y&d=c:\im\ HTTP/1.1[\r][\n]"
2004/09/30 10:05:34:032 CDT [DEBUG] HttpMethodBase - Adding Host request
header
2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "User-Agent: Jakarta
Commons-Htt
pClient/3.0-alpha2[\r][\n]"
2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "Content-Length:
965[\r][\n]"
2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "Authorization: NTLM
TlRMTVNTUAA
DAAAAGAAYAHAAAAAAAAAAiAAAAAwADABAAAAACwALAEwAAAAZABkAVwAAAAAAAACIAAAABlI
AAElCQU5
LU1lTVEVNU0pXSUxMSUFNU09OS0VZU1RPTkUuSUJBTktTWVNURU1TLkNPTUr/9DW8SyYyCI/
T4B3ZtGT
hmkRbC9Yn+Q==[\r][\n]"
2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "Host:
keystone.ibanksystems.com
[\r][\n]"
2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "Expect:
100-continue[\r][\n]"
2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "Content-Type:
multipart/form-da
ta; boundary=----------------314159265358979323846[\r][\n]"
2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "[\r][\n]"
2004/09/30 10:05:34:072 CDT [DEBUG] header - << "HTTP/1.1 100
Continue[\r][\n]"
2004/09/30 10:05:34:072 CDT [DEBUG] header - << "Server:
Microsoft-IIS/5.0[\r][\
n]"
2004/09/30 10:05:34:072 CDT [DEBUG] header - << "Date: Thu, 30 Sep 2004
15:05:30
GMT[\r][\n]"
2004/09/30 10:05:34:072 CDT [DEBUG] header - << "IISExport: This web
site was ex
ported using IIS Export v3.0[\r][\n]"
2004/09/30 10:05:34:072 CDT [DEBUG] HttpMethodBase - OK to continue
received
2004/09/30 10:05:34:122 CDT [DEBUG] header - << "HTTP/1.1 200
OK[\r][\n]"
2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Server:
Microsoft-IIS/5.0[\r][\
n]"
2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Date: Thu, 30 Sep 2004
15:05:30
GMT[\r][\n]"
2004/09/30 10:05:34:122 CDT [DEBUG] header - << "IISExport: This web
site was ex
ported using IIS Export v3.0[\r][\n]"
2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Content-Length:
2878[\r][\n]"
2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Content-Type:
text/html[\r][\n]
"
2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Set-Cookie:
ASPSESSIONIDACQABDQ
S=OPDPAAPBNOGEOCJAHGNLNBKC; path=/[\r][\n]"
2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Cache-control:
private[\r][\n]"
2004/09/30 10:05:34:142 CDT [DEBUG] HttpMethodBase - Cookie accepted:
"$Version=
0; ASPSESSIONIDACQABDQS=OPDPAAPBNOGEOCJAHGNLNBKC; $Path=/"
Status Line: HTTP/1.1 200 OK
Status Code: 200
2004/09/30 10:05:34:142 CDT [DEBUG] HttpMethodBase - Resorting to
protocol versi
on default close connection policy
2004/09/30 10:05:34:142 CDT [DEBUG] HttpMethodBase - Should NOT close
connection
, using HTTP/1.1
2004/09/30 10:05:34:142 CDT [DEBUG] HttpConnection - Releasing
connection back t
o connection manager.
Press any key to continue . . .
Please reply at your earliest convenience.
Chris
-----Original Message-----
From: Oleg Kalnichevski [mailto:olegk@apache.org]
Sent: Wednesday, September 29, 2004 5:10 PM
To: Commons HttpClient Project
Subject: RE: HttpClient + HTTPS + NTLM Authentication = HTTP/1.1
401AccessDenied
Christopher,
Ok, I see. This is weird. I can't explain it. Maybe I am just too tired
right now and should go to bed.
Actually it is preferred to not do a POST against a protected URL. One
should do a GET or a HEAD first, get authenticated, get a session
cookie, and than do a POST.
Another thing to try is turning on 'expect: continue' handshake
http://jakarta.apache.org/commons/httpclient/apidocs/org/apache/commons/
httpclient/methods/ExpectContinueMethod.html#setUseExpectHeader(boolean)
Oleg
On Wed, 2004-09-29 at 23:59, Burke, Christopher wrote:
> Oleg,
> Thanks for your prompt response. The main problem is that the file
has
> not been uploaded, but the return code is 200. I am trying to post
the
> File object 'f' to the 'F1' textbox in the following form (File f =
new
> File("C:/secureHttp/anotherLog.log");). I believe my code is correct.
>
> I am at a loss. What could be the problem?
>
> <FORM ENCTYPE="multipart/form-data" METHOD="POST"
> ACTION="siteman.asp?u=D&d=c:\im\">
> <FONT SIZE=1 FACE="Arial, Helvetica, sans-serif">NAME OF DESTINATION
> FOLDER ON WEB SITE</FONT><BR>
> <FONT SIZE=4 FACE="Arial, Helvetica,
sans-serif"><B>c:\im\</B></FONT><P>
> <FONT SIZE=1 FACE="Arial, Helvetica, sans-serif">PATHNAME OF LOCAL
> DOCUMENT<BR>(SEND THIS FILE TO THE WEB SERVER)</FONT><BR><INPUT
SIZE=30
> TYPE="FILE" NAME="F1"><P>
> <INPUT TYPE="SUBMIT" VALUE="UPLOAD">
> <INPUT TYPE="SUBMIT" NAME="POSTACTION" VALUE="CANCEL">
> <P><FONT SIZE=2 FACE="Arial, Helvetica, sans-serif">If the
> <B>[BROWSE...]</B> button is not displayed,
> <BR>you must upgrade your <A
HREF="http://www.netscape.com">Netscape</A>
> or <A HREF="http://www.microsoft.com">Microsoft</A> browser.
> </FORM></
>
> Thanks again for your help, Oleg.
>
> Christopher
>
> -----Original Message-----
> From: Oleg Kalnichevski [mailto:olegk@apache.org]
> Sent: Wednesday, September 29, 2004 4:29 PM
> To: Commons HttpClient Project
> Subject: Re: HttpClient + HTTPS + NTLM Authentication = HTTP/1.1
> 401Access Denied
>
> Christopher,
> What is exactly the problem?
>
> The authentication succeeded:
> HTTP/1.1 200 OK
>
> Session cookie has been sent:
> ASPSESSIONIDAQQBDABR=LMNNMHNALPPKIBENMNNANHGP
>
> NTLM authentication scheme is a stateful one and requires multiple
> challenges/responses. The first 401 Access Denied response is
perfectly
> OK.
>
> For details see:
> http://davenport.sourceforge.net/ntlm.html
> WARNING: contains utter insanity ;-)
>
> Oleg
>
> On Wed, 2004-09-29 at 23:10, Burke, Christopher wrote:
> > All,
> > I need help implementing a Commons HttpClient solution to post files
> to
> > a web server via an ASP page. This seems somewhat straightforward,
> but
> > I am having trouble with the NTLM authentication.
> >
> > Code Snippet:
> > String url =
> >
>
"https://keystone.ibanksystems.com/carlsontest/siteman.asp?u=Y&d=c:\\im\
> > \";
> >
> > NTCredentials creds = new
> >
NTCredentials("user","password","keystone.ibanksystems.com","domain");
> > HttpClient client = new HttpClient();
> > MultipartPostMethod mpPostMethod = new MultipartPostMethod(url);
> >
> > client.getState().setCredentials(null, null, creds);
> >
> > File f = new File("C:/secureHttp/anotherLog.log");
> >
> > //mpPostMethod.addParameter("F1",f.getName(),f);
> > mpPostMethod.addParameter("F1",f);
> >
> > int statusCode = client.executeMethod(mpPostMethod);
> >
> > System.out.println("Status Line: " + mpPostMethod.getStatusLine());
> > System.out.println("Status Code: " + statusCode);
> >
> > mpPostMethod.releaseConnection();
> >
> > Debug Output:
> > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Java version:
> 1.4.2_05
> > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Java vendor: Sun
> > Microsystems I
> > nc.
> > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Java class path:
> > .;..;C:\j2sdk1
> >
>
.4.2_05\bin;C:\apacheCommons\commons-httpclient.jar;C:\apacheCommons\com
> > mons-log
> >
>
ging-api.jar;C:\apacheCommons\commons-logging.jar;C:\apacheCommons\commo
> > ns-codec
> > -1.3.jar
> > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Operating system
> name:
> > Windows
> > XP
> > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Operating system
> > architecture:
> > x86
> > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Operating system
> > version: 5.1
> > 2004/09/29 15:53:44:565 CDT [DEBUG] HttpClient - SUN 1.42: SUN (DSA
> > key/paramete
> > r generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509
> > certificates;
> > JKS keystore; PKIX CertPathValidator; PKIX CertPathBuilder; LDAP,
> > Collection Ce
> > rtStores)
> > 2004/09/29 15:53:44:565 CDT [DEBUG] HttpClient - SunJSSE 1.42: Sun
> JSSE
> > provider
> > (implements RSA Signatures, PKCS12, SunX509 key/trust factories,
> SSLv3,
> > TLSv1)
> > 2004/09/29 15:53:44:565 CDT [DEBUG] HttpClient - SunRsaSign 1.42:
> SUN's
> > provider
> > for RSA signatures
> > 2004/09/29 15:53:44:565 CDT [DEBUG] HttpClient - SunJCE 1.42: SunJCE
> > Provider (i
> > mplements DES, Triple DES, AES, Blowfish, PBE, Diffie-Hellman,
> HMAC-MD5,
> > HMAC-SH
> > A1)
> > 2004/09/29 15:53:44:565 CDT [DEBUG] HttpClient - SunJGSS 1.0: Sun
> > (Kerberos v5)
> > 2004/09/29 15:53:45:857 CDT [DEBUG] HttpConnection -
> > HttpConnection.setSoTimeout
> > (0)
> > 2004/09/29 15:53:45:857 CDT [DEBUG] HttpMethodBase - Execute loop
try
> 1
> > 2004/09/29 15:53:45:857 CDT [DEBUG] header - >> "POST
> > /carlsontest/siteman.asp?u
> > =Y&d=c:\im\ HTTP/1.1[\r][\n]"
> > 2004/09/29 15:53:45:857 CDT [DEBUG] HttpMethodBase - Adding Host
> request
> > header
> > 2004/09/29 15:53:45:867 CDT [DEBUG] header - >> "User-Agent: Jakarta
> > Commons-Htt
> > pClient/2.0.1[\r][\n]"
> > 2004/09/29 15:53:45:867 CDT [DEBUG] header - >> "Host:
> > keystone.ibanksystems.com
> > [\r][\n]"
> > 2004/09/29 15:53:45:867 CDT [DEBUG] header - >> "Content-Length:
> > 965[\r][\n]"
> > 2004/09/29 15:53:45:867 CDT [DEBUG] header - >> "Content-Type:
> > multipart/form-da
> > ta; boundary=----------------314159265358979323846[\r][\n]"
> > 2004/09/29 15:53:46:037 CDT [DEBUG] header - >> "[\r][\n]"
> > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "HTTP/1.1 401 Access
> > Denied[\r][
> > \n]"
> > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "Server:
> > Microsoft-IIS/5.0[\r][\
> > n]"
> > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "Date: Wed, 29 Sep
> 2004
> > 20:53:50
> > GMT[\r][\n]"
> > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "WWW-Authenticate:
> > Negotiate[\r]
> > [\n]"
> > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "WWW-Authenticate:
> > NTLM[\r][\n]"
> >
> > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "Connection:
> > close[\r][\n]"
> > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "Content-Length:
> > 4431[\r][\n]"
> > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "Content-Type:
> > text/html[\r][\n]
> > "
> > 2004/09/29 15:53:46:107 CDT [DEBUG] HttpMethodBase - Authorization
> > required
> > 2004/09/29 15:53:46:117 CDT [DEBUG] HttpAuthenticator -
Authenticating
> > with the
> > default authentication realm at keystone.ibanksystems.com
> > 2004/09/29 15:53:46:117 CDT [DEBUG] HttpMethodBase -
> > HttpMethodBase.execute(): S
> > erver demanded authentication credentials, will try again.
> > 2004/09/29 15:53:46:127 CDT [DEBUG] HttpMethodBase - Should close
> > connection in
> > response to Connection: close
> >
> > 2004/09/29 15:53:46:127 CDT [DEBUG] HttpMethodBase - Execute loop
try
> 2
> > 2004/09/29 15:53:46:127 CDT [DEBUG] HttpMethodBase - Opening the
> > connection.
> > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "POST
> > /carlsontest/siteman.asp?u
> > =Y&d=c:\im\ HTTP/1.1[\r][\n]"
> > 2004/09/29 15:53:46:167 CDT [DEBUG] HttpMethodBase - Request to add
> Host
> > header
> > ignored: header already added
> > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "User-Agent: Jakarta
> > Commons-Htt
> > pClient/2.0.1[\r][\n]"
> > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "Host:
> > keystone.ibanksystems.com
> > [\r][\n]"
> > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "Content-Length:
> > 965[\r][\n]"
> > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "Authorization: NTLM
> > TlRMTVNTUAA
> >
>
BAAAABlIAAAwADAA5AAAAGQAZACAAAABLRVlTVE9ORS5JQkFOS1NZU1RFTVMuQ09NSUJBTkt
> > TWVNURU1
> > T[\r][\n]"
> > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "Content-Type:
> > multipart/form-da
> > ta; boundary=----------------314159265358979323846[\r][\n]"
> > 2004/09/29 15:53:46:217 CDT [DEBUG] header - >> "[\r][\n]"
> > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "HTTP/1.1 401 Access
> > Denied[\r][
> > \n]"
> > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "Server:
> > Microsoft-IIS/5.0[\r][\
> > n]"
> > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "Date: Wed, 29 Sep
> 2004
> > 20:53:50
> > GMT[\r][\n]"
> > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "WWW-Authenticate:
> NTLM
> > TlRMTVNT
> >
>
UAACAAAAAwADADAAAAAGAoEAi30aMw030nIAAAAAAAAAADoAOgAzAAAAQVRTAgAGAEEAVABT
> > AAEAEgBJ
> >
AEIAQQBOAEsAVwBFAEIAMQADABIAaQBiAGEAbgBrAHcAZQBiADEAAAAAAA==[\r][\n]"
> > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "Content-Length:
> > 4033[\r][\n]"
> > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "Content-Type:
> > text/html[\r][\n]
> > "
> > 2004/09/29 15:53:46:328 CDT [DEBUG] HttpMethodBase - Authorization
> > required
> > 2004/09/29 15:53:46:328 CDT [DEBUG] HttpAuthenticator -
Authenticating
> > with the
> > default authentication realm at keystone.ibanksystems.com
> > 2004/09/29 15:53:46:628 CDT [DEBUG] HttpMethodBase -
> > HttpMethodBase.execute(): S
> > erver demanded authentication credentials, will try again.
> > 2004/09/29 15:53:46:628 CDT [DEBUG] HttpMethodBase - Resorting to
> > protocol versi
> > on default close connection policy
> > 2004/09/29 15:53:46:628 CDT [DEBUG] HttpMethodBase - Should NOT
close
> > connection
> > , using HTTP/1.1.
> > 2004/09/29 15:53:46:628 CDT [DEBUG] HttpMethodBase - Execute loop
try
> 3
> > 2004/09/29 15:53:46:628 CDT [DEBUG] header - >> "POST
> > /carlsontest/siteman.asp?u
> > =Y&d=c:\im\ HTTP/1.1[\r][\n]"
> > 2004/09/29 15:53:46:638 CDT [DEBUG] HttpMethodBase - Request to add
> Host
> > header
> > ignored: header already added
> > 2004/09/29 15:53:46:638 CDT [DEBUG] header - >> "User-Agent: Jakarta
> > Commons-Htt
> > pClient/2.0.1[\r][\n]"
> > 2004/09/29 15:53:46:638 CDT [DEBUG] header - >> "Host:
> > keystone.ibanksystems.com
> > [\r][\n]"
> > 2004/09/29 15:53:46:638 CDT [DEBUG] header - >> "Content-Length:
> > 965[\r][\n]"
> > 2004/09/29 15:53:46:638 CDT [DEBUG] header - >> "Authorization: NTLM
> > TlRMTVNTUAA
> >
>
DAAAAGAAYAHAAAAAAAAAAiAAAAAwADABAAAAACwALAEwAAAAZABkAVwAAAAAAAACIAAAABlI
> > AAElCQU5
> >
>
LU1lTVEVNU0pXSUxMSUFNU09OS0VZU1RPTkUuSUJBTktTWVNURU1TLkNPTdQW3Tg5H/LspBn
> > 2RSOZkzf
> > ILnVSU4p+Ow==[\r][\n]"
> > 2004/09/29 15:53:46:638 CDT [DEBUG] header - >> "Content-Type:
> > multipart/form-da
> > ta; boundary=----------------314159265358979323846[\r][\n]"
> > 2004/09/29 15:53:46:648 CDT [DEBUG] header - >> "[\r][\n]"
> > 2004/09/29 15:53:46:698 CDT [DEBUG] header - << "HTTP/1.1 100
> > Continue[\r][\n]"
> > 2004/09/29 15:53:46:698 CDT [DEBUG] header - << "Server:
> > Microsoft-IIS/5.0[\r][\
> > n]"
> > 2004/09/29 15:53:46:698 CDT [DEBUG] header - << "Date: Wed, 29 Sep
> 2004
> > 20:53:50
> > GMT[\r][\n]"
> > 2004/09/29 15:53:46:698 CDT [DEBUG] header - << "IISExport: This web
> > site was ex
> > ported using IIS Export v3.0[\r][\n]"
> > 2004/09/29 15:53:46:698 CDT [INFO] HttpMethodBase - Discarding
> > unexpected respon
> > se: HTTP/1.1 100 Continue
> > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "HTTP/1.1 200
> > OK[\r][\n]"
> > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Server:
> > Microsoft-IIS/5.0[\r][\
> > n]"
> > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Date: Wed, 29 Sep
> 2004
> > 20:53:50
> > GMT[\r][\n]"
> > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "IISExport: This web
> > site was ex
> > ported using IIS Export v3.0[\r][\n]"
> > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Content-Length:
> > 2873[\r][\n]"
> > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Content-Type:
> > text/html[\r][\n]
> > "
> > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Set-Cookie:
> > ASPSESSIONIDAQQBDAB
> > R=LMNNMHNALPPKIBENMNNANHGP; path=/[\r][\n]"
> > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Cache-control:
> > private[\r][\n]"
> >
> > 2004/09/29 15:53:46:738 CDT [DEBUG] HttpMethodBase - Cookie
accepted:
> > "$Version=
> > 0; ASPSESSIONIDAQQBDABR=LMNNMHNALPPKIBENMNNANHGP; $Path=/"
> > Status Line: HTTP/1.1 200 OK
> > Status Code: 200
> > Press any key to continue . . .
> >
> > Any help/advice would be greatly appreciated.
> >
> > Best regards,
> >
> > Chris
> >
> >
> >
> >
---------------------------------------------------------------------
> > 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: HttpClient + HTTPS + NTLM Authentication = HTTP/1.1
401AccessDenied
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Thu, 2004-09-30 at 17:14, Burke, Christopher wrote:
> Oleg,
> Thanks for your continued help. I have done a few additional items.
> First, I have upgraded to HttpClient 3.0 Alpha 2. Second, I have
> implemented the 'expect: continue' handshake. This has not fixed the
> problem.
>
> Really no idea what do to know.
>
Christopher,
Beat me with a stick, but I have no clue either. This is what I suggest
(1) Activate content logging (see the logging guide for details)
http://jakarta.apache.org/commons/httpclient/3.0/logging.html
to make sure that HttpClient does send the file.
(2) Consider executing GET or HEAD against a protected URL on the server
to trigger authentication prior to executing the POST with the payload
(3) If you have access to the server, consider turning off NTLM
authentication. Since you use SSL there's no point in using NTLM. Basic
authentication over SSL is basically as secure as it gets
Hope this brings you a bit further
Oleg
> Code:
>
> NTCredentials creds = new NTCredentials(uid,pwd,host,domain);
> HttpClient client = new HttpClient();
> MultipartPostMethod mpPostMethod = new MultipartPostMethod(url);
>
> mpPostMethod.getParams().setParameter(HttpMethodParams.USE_EXPECT_CONTIN
> UE, new Boolean(true));
>
> client.getState().setCredentials(new AuthScope(host,port), creds);
>
> File f = new File("C:\\secureHttp\\anotherLog.log");
>
> mpPostMethod.addParameter("F1",f.getName(),f);
> //mpPostMethod.addParameter("F1",f);
>
> int statusCode = client.executeMethod(mpPostMethod);
>
> System.out.println("Status Line: " + mpPostMethod.getStatusLine());
> System.out.println("Status Code: " + statusCode);
>
> mpPostMethod.releaseConnection();
>
> Debug Output:
>
> 2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Java version: 1.4.2_05
> 2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Java vendor: Sun
> Microsystems I
> nc.
> 2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Java class path:
> .;..;C:\j2sdk1
> .4.2_05\bin;C:\apacheCommons3\commons-httpclient-3.0-alpha2.jar;C:\apach
> eCommons
> \commons-logging-api.jar;C:\apacheCommons\commons-logging.jar;C:\apacheC
> ommons\c
> ommons-codec-1.3.jar
> 2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Operating system name:
> Windows
> XP
> 2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Operating system
> architecture:
> x86
> 2004/09/30 10:05:24:829 CDT [DEBUG] HttpClient - Operating system
> version: 5.1
> 2004/09/30 10:05:24:949 CDT [DEBUG] HttpClient - SUN 1.42: SUN (DSA
> key/paramete
> r generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509
> certificates;
> JKS keystore; PKIX CertPathValidator; PKIX CertPathBuilder; LDAP,
> Collection Ce
> rtStores)
> 2004/09/30 10:05:24:949 CDT [DEBUG] HttpClient - SunJSSE 1.42: Sun JSSE
> provider
> (implements RSA Signatures, PKCS12, SunX509 key/trust factories, SSLv3,
> TLSv1)
> 2004/09/30 10:05:24:949 CDT [DEBUG] HttpClient - SunRsaSign 1.42: SUN's
> provider
> for RSA signatures
> 2004/09/30 10:05:24:949 CDT [DEBUG] HttpClient - SunJCE 1.42: SunJCE
> Provider (i
> mplements DES, Triple DES, AES, Blowfish, PBE, Diffie-Hellman, HMAC-MD5,
> HMAC-SH
> A1)
> 2004/09/30 10:05:24:949 CDT [DEBUG] HttpClient - SunJGSS 1.0: Sun
> (Kerberos v5)
> 2004/09/30 10:05:24:949 CDT [DEBUG] DefaultHttpParams - Set parameter
> http.usera
> gent = Jakarta Commons-HttpClient/3.0-alpha2
> 2004/09/30 10:05:24:959 CDT [DEBUG] DefaultHttpParams - Set parameter
> http.proto
> col.version = HTTP/1.1
> 2004/09/30 10:05:24:959 CDT [DEBUG] DefaultHttpParams - Set parameter
> http.conne
> ction-manager.class = class
> org.apache.commons.httpclient.SimpleHttpConnectionMa
> nager
> 2004/09/30 10:05:24:959 CDT [DEBUG] DefaultHttpParams - Set parameter
> http.proto
> col.cookie-policy = rfc2109
> 2004/09/30 10:05:24:969 CDT [DEBUG] DefaultHttpParams - Set parameter
> http.proto
> col.element-charset = US-ASCII
> 2004/09/30 10:05:24:969 CDT [DEBUG] DefaultHttpParams - Set parameter
> http.proto
> col.content-charset = ISO-8859-1
> 2004/09/30 10:05:24:969 CDT [DEBUG] DefaultHttpParams - Set parameter
> http.metho
> d.retry-handler =
> org.apache.commons.httpclient.DefaultHttpMethodRetryHandler@19
> 7a37c
> 2004/09/30 10:05:24:969 CDT [DEBUG] DefaultHttpParams - Set parameter
> http.datep
> arser.patterns = [EEE, dd MMM yyyy HH:mm:ss zzz, EEEE, dd-MMM-yy
> HH:mm:ss zzz, E
> EE MMM d HH:mm:ss yyyy, EEE, dd-MMM-yyyy HH:mm:ss z, EEE, dd-MMM-yyyy
> HH-mm-ss z
> , EEE, dd MMM yy HH:mm:ss z, EEE dd-MMM-yyyy HH:mm:ss z, EEE dd MMM yyyy
> HH:mm:s
> s z, EEE dd-MMM-yyyy HH-mm-ss z, EEE dd-MMM-yy HH:mm:ss z, EEE dd MMM yy
> HH:mm:s
> s z, EEE,dd-MMM-yy HH:mm:ss z, EEE,dd-MMM-yyyy HH:mm:ss z, EEE,
> dd-MM-yyyy HH:mm
> :ss z]
> 2004/09/30 10:05:25:029 CDT [DEBUG] DefaultHttpParams - Set parameter
> http.proto
> col.expect-continue = true
> 2004/09/30 10:05:25:200 CDT [DEBUG] header - >> "POST
> /carlsontest/siteman.asp?u
> =Y&d=c:\im\ HTTP/1.1[\r][\n]"
> 2004/09/30 10:05:25:210 CDT [DEBUG] HttpMethodBase - Adding Host request
> header
> 2004/09/30 10:05:25:220 CDT [DEBUG] header - >> "User-Agent: Jakarta
> Commons-Htt
> pClient/3.0-alpha2[\r][\n]"
> 2004/09/30 10:05:25:220 CDT [DEBUG] header - >> "Host:
> keystone.ibanksystems.com
> [\r][\n]"
> 2004/09/30 10:05:25:220 CDT [DEBUG] header - >> "Expect:
> 100-continue[\r][\n]"
> 2004/09/30 10:05:25:220 CDT [DEBUG] header - >> "Content-Length:
> 965[\r][\n]"
> 2004/09/30 10:05:25:220 CDT [DEBUG] header - >> "Content-Type:
> multipart/form-da
> ta; boundary=----------------314159265358979323846[\r][\n]"
> 2004/09/30 10:05:27:353 CDT [DEBUG] header - >> "[\r][\n]"
> 2004/09/30 10:05:30:357 CDT [INFO] HttpMethodBase - 100 (continue) read
> timeout.
> Resume sending the request
> 2004/09/30 10:05:30:407 CDT [DEBUG] header - << "HTTP/1.1 401 Access
> Denied[\r][
> \n]"
> 2004/09/30 10:05:30:417 CDT [DEBUG] header - << "Server:
> Microsoft-IIS/5.0[\r][\
> n]"
> 2004/09/30 10:05:30:417 CDT [DEBUG] header - << "Date: Thu, 30 Sep 2004
> 15:05:27
> GMT[\r][\n]"
> 2004/09/30 10:05:30:417 CDT [DEBUG] header - << "WWW-Authenticate:
> Negotiate[\r]
> [\n]"
> 2004/09/30 10:05:30:417 CDT [DEBUG] header - << "WWW-Authenticate:
> NTLM[\r][\n]"
>
> 2004/09/30 10:05:30:417 CDT [DEBUG] header - << "Connection:
> close[\r][\n]"
> 2004/09/30 10:05:30:417 CDT [DEBUG] header - << "Content-Length:
> 4431[\r][\n]"
> 2004/09/30 10:05:30:417 CDT [DEBUG] header - << "Content-Type:
> text/html[\r][\n]
> "
> 2004/09/30 10:05:30:417 CDT [DEBUG] HttpMethodDirector - Authorization
> required
> 2004/09/30 10:05:30:457 CDT [DEBUG] AuthChallengeProcessor - Supported
> authentic
> ation schemes in the order of preference: [ntlm, digest, basic]
> 2004/09/30 10:05:30:457 CDT [INFO] AuthChallengeProcessor - ntlm
> authentication
> scheme selected
> 2004/09/30 10:05:30:457 CDT [DEBUG] AuthChallengeProcessor - Using
> authenticatio
> n scheme: ntlm
> 2004/09/30 10:05:30:457 CDT [DEBUG] HttpMethodBase - Should close
> connection in
> response to Connection: close
>
> 2004/09/30 10:05:30:457 CDT [DEBUG] HttpConnection - Connection is
> locked. Call
> to releaseConnection() ignored.
> 2004/09/30 10:05:30:457 CDT [DEBUG] HttpMethodDirector - Authenticating
> with NTL
> M <any realm>@keystone.ibanksystems.com:443
> 2004/09/30 10:05:30:497 CDT [DEBUG] header - >> "POST
> /carlsontest/siteman.asp?u
> =Y&d=c:\im\ HTTP/1.1[\r][\n]"
> 2004/09/30 10:05:30:497 CDT [DEBUG] HttpMethodBase - Adding Host request
> header
> 2004/09/30 10:05:30:497 CDT [DEBUG] header - >> "User-Agent: Jakarta
> Commons-Htt
> pClient/3.0-alpha2[\r][\n]"
> 2004/09/30 10:05:30:497 CDT [DEBUG] header - >> "Content-Length:
> 965[\r][\n]"
> 2004/09/30 10:05:30:497 CDT [DEBUG] header - >> "Authorization: NTLM
> TlRMTVNTUAA
> BAAAABlIAAAwADAA5AAAAGQAZACAAAABLRVlTVE9ORS5JQkFOS1NZU1RFTVMuQ09NSUJBTkt
> TWVNURU1
> T[\r][\n]"
> 2004/09/30 10:05:30:507 CDT [DEBUG] header - >> "Host:
> keystone.ibanksystems.com
> [\r][\n]"
> 2004/09/30 10:05:30:507 CDT [DEBUG] header - >> "Expect:
> 100-continue[\r][\n]"
> 2004/09/30 10:05:30:507 CDT [DEBUG] header - >> "Content-Type:
> multipart/form-da
> ta; boundary=----------------314159265358979323846[\r][\n]"
> 2004/09/30 10:05:30:537 CDT [DEBUG] header - >> "[\r][\n]"
> 2004/09/30 10:05:33:532 CDT [INFO] HttpMethodBase - 100 (continue) read
> timeout.
> Resume sending the request
> 2004/09/30 10:05:33:602 CDT [DEBUG] header - << "HTTP/1.1 401 Access
> Denied[\r][
> \n]"
> 2004/09/30 10:05:33:602 CDT [DEBUG] header - << "Server:
> Microsoft-IIS/5.0[\r][\
> n]"
> 2004/09/30 10:05:33:602 CDT [DEBUG] header - << "Date: Thu, 30 Sep 2004
> 15:05:30
> GMT[\r][\n]"
> 2004/09/30 10:05:33:602 CDT [DEBUG] header - << "WWW-Authenticate: NTLM
> TlRMTVNT
> UAACAAAAAwADADAAAAAGAoEAw4VfLPqTzPIAAAAAAAAAADoAOgAzAAAAQVRTAgAGAEEAVABT
> AAEAEgBJ
> AEIAQQBOAEsAVwBFAEIAMQADABIAaQBiAGEAbgBrAHcAZQBiADEAAAAAAA==[\r][\n]"
> 2004/09/30 10:05:33:602 CDT [DEBUG] header - << "Content-Length:
> 4033[\r][\n]"
> 2004/09/30 10:05:33:602 CDT [DEBUG] header - << "Content-Type:
> text/html[\r][\n]
> "
> 2004/09/30 10:05:33:602 CDT [DEBUG] HttpMethodDirector - Authorization
> required
> 2004/09/30 10:05:33:602 CDT [DEBUG] AuthChallengeProcessor - Using
> authenticatio
> n scheme: ntlm
> 2004/09/30 10:05:33:612 CDT [DEBUG] HttpMethodBase - Resorting to
> protocol versi
> on default close connection policy
> 2004/09/30 10:05:33:612 CDT [DEBUG] HttpMethodBase - Should NOT close
> connection
> , using HTTP/1.1
> 2004/09/30 10:05:33:612 CDT [DEBUG] HttpConnection - Connection is
> locked. Call
> to releaseConnection() ignored.
> 2004/09/30 10:05:33:612 CDT [DEBUG] HttpMethodDirector - Authenticating
> with NTL
> M <any realm>@keystone.ibanksystems.com:443
> 2004/09/30 10:05:34:032 CDT [DEBUG] header - >> "POST
> /carlsontest/siteman.asp?u
> =Y&d=c:\im\ HTTP/1.1[\r][\n]"
> 2004/09/30 10:05:34:032 CDT [DEBUG] HttpMethodBase - Adding Host request
> header
> 2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "User-Agent: Jakarta
> Commons-Htt
> pClient/3.0-alpha2[\r][\n]"
> 2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "Content-Length:
> 965[\r][\n]"
> 2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "Authorization: NTLM
> TlRMTVNTUAA
> DAAAAGAAYAHAAAAAAAAAAiAAAAAwADABAAAAACwALAEwAAAAZABkAVwAAAAAAAACIAAAABlI
> AAElCQU5
> LU1lTVEVNU0pXSUxMSUFNU09OS0VZU1RPTkUuSUJBTktTWVNURU1TLkNPTUr/9DW8SyYyCI/
> T4B3ZtGT
> hmkRbC9Yn+Q==[\r][\n]"
> 2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "Host:
> keystone.ibanksystems.com
> [\r][\n]"
> 2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "Expect:
> 100-continue[\r][\n]"
> 2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "Content-Type:
> multipart/form-da
> ta; boundary=----------------314159265358979323846[\r][\n]"
> 2004/09/30 10:05:34:042 CDT [DEBUG] header - >> "[\r][\n]"
> 2004/09/30 10:05:34:072 CDT [DEBUG] header - << "HTTP/1.1 100
> Continue[\r][\n]"
> 2004/09/30 10:05:34:072 CDT [DEBUG] header - << "Server:
> Microsoft-IIS/5.0[\r][\
> n]"
> 2004/09/30 10:05:34:072 CDT [DEBUG] header - << "Date: Thu, 30 Sep 2004
> 15:05:30
> GMT[\r][\n]"
> 2004/09/30 10:05:34:072 CDT [DEBUG] header - << "IISExport: This web
> site was ex
> ported using IIS Export v3.0[\r][\n]"
> 2004/09/30 10:05:34:072 CDT [DEBUG] HttpMethodBase - OK to continue
> received
> 2004/09/30 10:05:34:122 CDT [DEBUG] header - << "HTTP/1.1 200
> OK[\r][\n]"
> 2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Server:
> Microsoft-IIS/5.0[\r][\
> n]"
> 2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Date: Thu, 30 Sep 2004
> 15:05:30
> GMT[\r][\n]"
> 2004/09/30 10:05:34:122 CDT [DEBUG] header - << "IISExport: This web
> site was ex
> ported using IIS Export v3.0[\r][\n]"
> 2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Content-Length:
> 2878[\r][\n]"
> 2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Content-Type:
> text/html[\r][\n]
> "
> 2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Set-Cookie:
> ASPSESSIONIDACQABDQ
> S=OPDPAAPBNOGEOCJAHGNLNBKC; path=/[\r][\n]"
> 2004/09/30 10:05:34:122 CDT [DEBUG] header - << "Cache-control:
> private[\r][\n]"
>
> 2004/09/30 10:05:34:142 CDT [DEBUG] HttpMethodBase - Cookie accepted:
> "$Version=
> 0; ASPSESSIONIDACQABDQS=OPDPAAPBNOGEOCJAHGNLNBKC; $Path=/"
> Status Line: HTTP/1.1 200 OK
> Status Code: 200
> 2004/09/30 10:05:34:142 CDT [DEBUG] HttpMethodBase - Resorting to
> protocol versi
> on default close connection policy
> 2004/09/30 10:05:34:142 CDT [DEBUG] HttpMethodBase - Should NOT close
> connection
> , using HTTP/1.1
> 2004/09/30 10:05:34:142 CDT [DEBUG] HttpConnection - Releasing
> connection back t
> o connection manager.
> Press any key to continue . . .
>
> Please reply at your earliest convenience.
>
> Chris
>
> -----Original Message-----
> From: Oleg Kalnichevski [mailto:olegk@apache.org]
> Sent: Wednesday, September 29, 2004 5:10 PM
> To: Commons HttpClient Project
> Subject: RE: HttpClient + HTTPS + NTLM Authentication = HTTP/1.1
> 401AccessDenied
>
> Christopher,
> Ok, I see. This is weird. I can't explain it. Maybe I am just too tired
> right now and should go to bed.
>
> Actually it is preferred to not do a POST against a protected URL. One
> should do a GET or a HEAD first, get authenticated, get a session
> cookie, and than do a POST.
>
> Another thing to try is turning on 'expect: continue' handshake
>
> http://jakarta.apache.org/commons/httpclient/apidocs/org/apache/commons/
> httpclient/methods/ExpectContinueMethod.html#setUseExpectHeader(boolean)
>
> Oleg
>
> On Wed, 2004-09-29 at 23:59, Burke, Christopher wrote:
> > Oleg,
> > Thanks for your prompt response. The main problem is that the file
> has
> > not been uploaded, but the return code is 200. I am trying to post
> the
> > File object 'f' to the 'F1' textbox in the following form (File f =
> new
> > File("C:/secureHttp/anotherLog.log");). I believe my code is correct.
>
> >
> > I am at a loss. What could be the problem?
> >
> > <FORM ENCTYPE="multipart/form-data" METHOD="POST"
> > ACTION="siteman.asp?u=D&d=c:\im\">
> > <FONT SIZE=1 FACE="Arial, Helvetica, sans-serif">NAME OF DESTINATION
> > FOLDER ON WEB SITE</FONT><BR>
> > <FONT SIZE=4 FACE="Arial, Helvetica,
> sans-serif"><B>c:\im\</B></FONT><P>
> > <FONT SIZE=1 FACE="Arial, Helvetica, sans-serif">PATHNAME OF LOCAL
> > DOCUMENT<BR>(SEND THIS FILE TO THE WEB SERVER)</FONT><BR><INPUT
> SIZE=30
> > TYPE="FILE" NAME="F1"><P>
> > <INPUT TYPE="SUBMIT" VALUE="UPLOAD">
> > <INPUT TYPE="SUBMIT" NAME="POSTACTION" VALUE="CANCEL">
> > <P><FONT SIZE=2 FACE="Arial, Helvetica, sans-serif">If the
> > <B>[BROWSE...]</B> button is not displayed,
> > <BR>you must upgrade your <A
> HREF="http://www.netscape.com">Netscape</A>
> > or <A HREF="http://www.microsoft.com">Microsoft</A> browser.
> > </FORM></
> >
> > Thanks again for your help, Oleg.
> >
> > Christopher
> >
> > -----Original Message-----
> > From: Oleg Kalnichevski [mailto:olegk@apache.org]
> > Sent: Wednesday, September 29, 2004 4:29 PM
> > To: Commons HttpClient Project
> > Subject: Re: HttpClient + HTTPS + NTLM Authentication = HTTP/1.1
> > 401Access Denied
> >
> > Christopher,
> > What is exactly the problem?
> >
> > The authentication succeeded:
> > HTTP/1.1 200 OK
> >
> > Session cookie has been sent:
> > ASPSESSIONIDAQQBDABR=LMNNMHNALPPKIBENMNNANHGP
> >
> > NTLM authentication scheme is a stateful one and requires multiple
> > challenges/responses. The first 401 Access Denied response is
> perfectly
> > OK.
> >
> > For details see:
> > http://davenport.sourceforge.net/ntlm.html
> > WARNING: contains utter insanity ;-)
> >
> > Oleg
> >
> > On Wed, 2004-09-29 at 23:10, Burke, Christopher wrote:
> > > All,
> > > I need help implementing a Commons HttpClient solution to post files
> > to
> > > a web server via an ASP page. This seems somewhat straightforward,
> > but
> > > I am having trouble with the NTLM authentication.
> > >
> > > Code Snippet:
> > > String url =
> > >
> >
> "https://keystone.ibanksystems.com/carlsontest/siteman.asp?u=Y&d=c:\\im\
> > > \";
> > >
> > > NTCredentials creds = new
> > >
> NTCredentials("user","password","keystone.ibanksystems.com","domain");
> > > HttpClient client = new HttpClient();
> > > MultipartPostMethod mpPostMethod = new MultipartPostMethod(url);
> > >
> > > client.getState().setCredentials(null, null, creds);
> > >
> > > File f = new File("C:/secureHttp/anotherLog.log");
> > >
> > > //mpPostMethod.addParameter("F1",f.getName(),f);
> > > mpPostMethod.addParameter("F1",f);
> > >
> > > int statusCode = client.executeMethod(mpPostMethod);
> > >
> > > System.out.println("Status Line: " + mpPostMethod.getStatusLine());
> > > System.out.println("Status Code: " + statusCode);
> > >
> > > mpPostMethod.releaseConnection();
> > >
> > > Debug Output:
> > > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Java version:
> > 1.4.2_05
> > > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Java vendor: Sun
> > > Microsystems I
> > > nc.
> > > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Java class path:
> > > .;..;C:\j2sdk1
> > >
> >
> .4.2_05\bin;C:\apacheCommons\commons-httpclient.jar;C:\apacheCommons\com
> > > mons-log
> > >
> >
> ging-api.jar;C:\apacheCommons\commons-logging.jar;C:\apacheCommons\commo
> > > ns-codec
> > > -1.3.jar
> > > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Operating system
> > name:
> > > Windows
> > > XP
> > > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Operating system
> > > architecture:
> > > x86
> > > 2004/09/29 15:53:44:425 CDT [DEBUG] HttpClient - Operating system
> > > version: 5.1
> > > 2004/09/29 15:53:44:565 CDT [DEBUG] HttpClient - SUN 1.42: SUN (DSA
> > > key/paramete
> > > r generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509
> > > certificates;
> > > JKS keystore; PKIX CertPathValidator; PKIX CertPathBuilder; LDAP,
> > > Collection Ce
> > > rtStores)
> > > 2004/09/29 15:53:44:565 CDT [DEBUG] HttpClient - SunJSSE 1.42: Sun
> > JSSE
> > > provider
> > > (implements RSA Signatures, PKCS12, SunX509 key/trust factories,
> > SSLv3,
> > > TLSv1)
> > > 2004/09/29 15:53:44:565 CDT [DEBUG] HttpClient - SunRsaSign 1.42:
> > SUN's
> > > provider
> > > for RSA signatures
> > > 2004/09/29 15:53:44:565 CDT [DEBUG] HttpClient - SunJCE 1.42: SunJCE
> > > Provider (i
> > > mplements DES, Triple DES, AES, Blowfish, PBE, Diffie-Hellman,
> > HMAC-MD5,
> > > HMAC-SH
> > > A1)
> > > 2004/09/29 15:53:44:565 CDT [DEBUG] HttpClient - SunJGSS 1.0: Sun
> > > (Kerberos v5)
> > > 2004/09/29 15:53:45:857 CDT [DEBUG] HttpConnection -
> > > HttpConnection.setSoTimeout
> > > (0)
> > > 2004/09/29 15:53:45:857 CDT [DEBUG] HttpMethodBase - Execute loop
> try
> > 1
> > > 2004/09/29 15:53:45:857 CDT [DEBUG] header - >> "POST
> > > /carlsontest/siteman.asp?u
> > > =Y&d=c:\im\ HTTP/1.1[\r][\n]"
> > > 2004/09/29 15:53:45:857 CDT [DEBUG] HttpMethodBase - Adding Host
> > request
> > > header
> > > 2004/09/29 15:53:45:867 CDT [DEBUG] header - >> "User-Agent: Jakarta
> > > Commons-Htt
> > > pClient/2.0.1[\r][\n]"
> > > 2004/09/29 15:53:45:867 CDT [DEBUG] header - >> "Host:
> > > keystone.ibanksystems.com
> > > [\r][\n]"
> > > 2004/09/29 15:53:45:867 CDT [DEBUG] header - >> "Content-Length:
> > > 965[\r][\n]"
> > > 2004/09/29 15:53:45:867 CDT [DEBUG] header - >> "Content-Type:
> > > multipart/form-da
> > > ta; boundary=----------------314159265358979323846[\r][\n]"
> > > 2004/09/29 15:53:46:037 CDT [DEBUG] header - >> "[\r][\n]"
> > > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "HTTP/1.1 401 Access
> > > Denied[\r][
> > > \n]"
> > > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "Server:
> > > Microsoft-IIS/5.0[\r][\
> > > n]"
> > > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "Date: Wed, 29 Sep
> > 2004
> > > 20:53:50
> > > GMT[\r][\n]"
> > > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "WWW-Authenticate:
> > > Negotiate[\r]
> > > [\n]"
> > > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "WWW-Authenticate:
> > > NTLM[\r][\n]"
> > >
> > > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "Connection:
> > > close[\r][\n]"
> > > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "Content-Length:
> > > 4431[\r][\n]"
> > > 2004/09/29 15:53:46:107 CDT [DEBUG] header - << "Content-Type:
> > > text/html[\r][\n]
> > > "
> > > 2004/09/29 15:53:46:107 CDT [DEBUG] HttpMethodBase - Authorization
> > > required
> > > 2004/09/29 15:53:46:117 CDT [DEBUG] HttpAuthenticator -
> Authenticating
> > > with the
> > > default authentication realm at keystone.ibanksystems.com
> > > 2004/09/29 15:53:46:117 CDT [DEBUG] HttpMethodBase -
> > > HttpMethodBase.execute(): S
> > > erver demanded authentication credentials, will try again.
> > > 2004/09/29 15:53:46:127 CDT [DEBUG] HttpMethodBase - Should close
> > > connection in
> > > response to Connection: close
> > >
> > > 2004/09/29 15:53:46:127 CDT [DEBUG] HttpMethodBase - Execute loop
> try
> > 2
> > > 2004/09/29 15:53:46:127 CDT [DEBUG] HttpMethodBase - Opening the
> > > connection.
> > > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "POST
> > > /carlsontest/siteman.asp?u
> > > =Y&d=c:\im\ HTTP/1.1[\r][\n]"
> > > 2004/09/29 15:53:46:167 CDT [DEBUG] HttpMethodBase - Request to add
> > Host
> > > header
> > > ignored: header already added
> > > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "User-Agent: Jakarta
> > > Commons-Htt
> > > pClient/2.0.1[\r][\n]"
> > > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "Host:
> > > keystone.ibanksystems.com
> > > [\r][\n]"
> > > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "Content-Length:
> > > 965[\r][\n]"
> > > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "Authorization: NTLM
> > > TlRMTVNTUAA
> > >
> >
> BAAAABlIAAAwADAA5AAAAGQAZACAAAABLRVlTVE9ORS5JQkFOS1NZU1RFTVMuQ09NSUJBTkt
> > > TWVNURU1
> > > T[\r][\n]"
> > > 2004/09/29 15:53:46:167 CDT [DEBUG] header - >> "Content-Type:
> > > multipart/form-da
> > > ta; boundary=----------------314159265358979323846[\r][\n]"
> > > 2004/09/29 15:53:46:217 CDT [DEBUG] header - >> "[\r][\n]"
> > > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "HTTP/1.1 401 Access
> > > Denied[\r][
> > > \n]"
> > > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "Server:
> > > Microsoft-IIS/5.0[\r][\
> > > n]"
> > > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "Date: Wed, 29 Sep
> > 2004
> > > 20:53:50
> > > GMT[\r][\n]"
> > > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "WWW-Authenticate:
> > NTLM
> > > TlRMTVNT
> > >
> >
> UAACAAAAAwADADAAAAAGAoEAi30aMw030nIAAAAAAAAAADoAOgAzAAAAQVRTAgAGAEEAVABT
> > > AAEAEgBJ
> > >
> AEIAQQBOAEsAVwBFAEIAMQADABIAaQBiAGEAbgBrAHcAZQBiADEAAAAAAA==[\r][\n]"
> > > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "Content-Length:
> > > 4033[\r][\n]"
> > > 2004/09/29 15:53:46:328 CDT [DEBUG] header - << "Content-Type:
> > > text/html[\r][\n]
> > > "
> > > 2004/09/29 15:53:46:328 CDT [DEBUG] HttpMethodBase - Authorization
> > > required
> > > 2004/09/29 15:53:46:328 CDT [DEBUG] HttpAuthenticator -
> Authenticating
> > > with the
> > > default authentication realm at keystone.ibanksystems.com
> > > 2004/09/29 15:53:46:628 CDT [DEBUG] HttpMethodBase -
> > > HttpMethodBase.execute(): S
> > > erver demanded authentication credentials, will try again.
> > > 2004/09/29 15:53:46:628 CDT [DEBUG] HttpMethodBase - Resorting to
> > > protocol versi
> > > on default close connection policy
> > > 2004/09/29 15:53:46:628 CDT [DEBUG] HttpMethodBase - Should NOT
> close
> > > connection
> > > , using HTTP/1.1.
> > > 2004/09/29 15:53:46:628 CDT [DEBUG] HttpMethodBase - Execute loop
> try
> > 3
> > > 2004/09/29 15:53:46:628 CDT [DEBUG] header - >> "POST
> > > /carlsontest/siteman.asp?u
> > > =Y&d=c:\im\ HTTP/1.1[\r][\n]"
> > > 2004/09/29 15:53:46:638 CDT [DEBUG] HttpMethodBase - Request to add
> > Host
> > > header
> > > ignored: header already added
> > > 2004/09/29 15:53:46:638 CDT [DEBUG] header - >> "User-Agent: Jakarta
> > > Commons-Htt
> > > pClient/2.0.1[\r][\n]"
> > > 2004/09/29 15:53:46:638 CDT [DEBUG] header - >> "Host:
> > > keystone.ibanksystems.com
> > > [\r][\n]"
> > > 2004/09/29 15:53:46:638 CDT [DEBUG] header - >> "Content-Length:
> > > 965[\r][\n]"
> > > 2004/09/29 15:53:46:638 CDT [DEBUG] header - >> "Authorization: NTLM
> > > TlRMTVNTUAA
> > >
> >
> DAAAAGAAYAHAAAAAAAAAAiAAAAAwADABAAAAACwALAEwAAAAZABkAVwAAAAAAAACIAAAABlI
> > > AAElCQU5
> > >
> >
> LU1lTVEVNU0pXSUxMSUFNU09OS0VZU1RPTkUuSUJBTktTWVNURU1TLkNPTdQW3Tg5H/LspBn
> > > 2RSOZkzf
> > > ILnVSU4p+Ow==[\r][\n]"
> > > 2004/09/29 15:53:46:638 CDT [DEBUG] header - >> "Content-Type:
> > > multipart/form-da
> > > ta; boundary=----------------314159265358979323846[\r][\n]"
> > > 2004/09/29 15:53:46:648 CDT [DEBUG] header - >> "[\r][\n]"
> > > 2004/09/29 15:53:46:698 CDT [DEBUG] header - << "HTTP/1.1 100
> > > Continue[\r][\n]"
> > > 2004/09/29 15:53:46:698 CDT [DEBUG] header - << "Server:
> > > Microsoft-IIS/5.0[\r][\
> > > n]"
> > > 2004/09/29 15:53:46:698 CDT [DEBUG] header - << "Date: Wed, 29 Sep
> > 2004
> > > 20:53:50
> > > GMT[\r][\n]"
> > > 2004/09/29 15:53:46:698 CDT [DEBUG] header - << "IISExport: This web
> > > site was ex
> > > ported using IIS Export v3.0[\r][\n]"
> > > 2004/09/29 15:53:46:698 CDT [INFO] HttpMethodBase - Discarding
> > > unexpected respon
> > > se: HTTP/1.1 100 Continue
> > > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "HTTP/1.1 200
> > > OK[\r][\n]"
> > > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Server:
> > > Microsoft-IIS/5.0[\r][\
> > > n]"
> > > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Date: Wed, 29 Sep
> > 2004
> > > 20:53:50
> > > GMT[\r][\n]"
> > > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "IISExport: This web
> > > site was ex
> > > ported using IIS Export v3.0[\r][\n]"
> > > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Content-Length:
> > > 2873[\r][\n]"
> > > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Content-Type:
> > > text/html[\r][\n]
> > > "
> > > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Set-Cookie:
> > > ASPSESSIONIDAQQBDAB
> > > R=LMNNMHNALPPKIBENMNNANHGP; path=/[\r][\n]"
> > > 2004/09/29 15:53:46:708 CDT [DEBUG] header - << "Cache-control:
> > > private[\r][\n]"
> > >
> > > 2004/09/29 15:53:46:738 CDT [DEBUG] HttpMethodBase - Cookie
> accepted:
> > > "$Version=
> > > 0; ASPSESSIONIDAQQBDABR=LMNNMHNALPPKIBENMNNANHGP; $Path=/"
> > > Status Line: HTTP/1.1 200 OK
> > > Status Code: 200
> > > Press any key to continue . . .
> > >
> > > Any help/advice would be greatly appreciated.
> > >
> > > Best regards,
> > >
> > > Chris
> > >
> > >
> > >
> > >
> ---------------------------------------------------------------------
> > > 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