[jcifs] problem with java applet needing NTLM proxy authentication

André Warnier aw at ice-sa.com
Wed Mar 11 14:16:06 GMT 2009


Hi.

This is probably not a jCIFS issue, but I'm addressing this to this 
list, figuring that is where I'll find the required expertise.

(Note : I have already received a hint about this from Chuck Caldarale, 
but honestly I don't know how to handle it.  The hint consisted of the 
code of some of the classes (NTLMAuthentication) of the Sun 
sun.net.www.protocol.http package.  However, I can't quite figure out 
where these would fit).

Summary : we provide a web application to our customers, hosted on our 
Internet website.  Customers access this application from within their 
corporate networks.
In one page of the application, we use a java applet.  This applet 
collects some information from the html form in which it is located, and 
then builds and sends its own POST requests to our server.
It works fine in most cases, but in one customer case it does not, for 
the following reason : at this customer, browsers access the Internet 
through a proxy which requires an NTLM authentication.
The browser's own proxy NTLM authentication works fine, since these 
customers are able to access the pages of our web application, even the 
one containing the applet.
But our java applet knows nothing about NTLM authentication, so when it 
in turn tries to POST to our server, it hits a wall.

I am a bit lost in all this, so I would be grateful for any further 
relevants questions or tips indicating at least a direction in which to 
search for a solution.

To create the POSTs to our server, the applet currently uses the 
following classes :

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.StringPart;
import org.apache.commons.httpclient.methods.multipart.PartBase;
import 
org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.httpclient.HostConfiguration;

Our applet already picks up from the browser the proxy settings to use 
for the POSTs, and that part works fine.

What I would really like to know, is whether there exists a method by 
which this applet (which in this case runs in a IE browser), can somehow 
obtain from the enclosing browser the NTLM credentials already used by 
the browser for authenticating to the proxy.

The applet can be seen in operation on our website, and I can also 
provide the source code to anyone who is interested.

Thanks in advance
André


More information about the jcifs mailing list