[jcifs] Using JCIFS with JRun 4

eglass1 at attbi.com eglass1 at attbi.com
Thu Mar 27 22:01:59 EST 2003


I went ahead and downloaded the trial version of JRun 4.  Looking at the 
conversation between the client and the server, it appears that the JRun server 
is closing the connection after sending the Type 2 challenge message.  Note 
that the headers sent are:

HTTP/1.0 401 Unauthorized
WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAAAAAAAAAAABAgAA0HaFjIfw90Q=
Date: Thu, 27 Mar 2003 10:16:10 GMT
Content-Length: 0
Server: JRun Web Server

Which indicate that the JRun web server is an HTTP 1.0 server.  HTTP 1.0 uses 
transient connections by default; NTLM requires a persistent connection while 
negotiating authentication.

In HTTP 1.1, connections are persistent by default, unless the client or server 
sends a "Connection: close" header.  In 1.0, persistent connections are 
negotiated by the client sending a "Connection: Keep-Alive", and the server 
responding in kind to indicate that persistent connections are supported.

Just as a lark, I modified the NtlmSsp to send back an explicit "Connection: 
Keep-Alive" (to see if the JRun web server would pick up that the servlet wants 
to provide a persistent connection).  I got:

HTTP/1.0 401 Unauthorized
WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAAAAAAAAAAABAgAAw////02uV7g=
Connection: close
Date: Thu, 27 Mar 2003 10:30:16 GMT
Content-Length: 0
Server: JRun Web Server

Which seems to indicate that the server sees the connection header and doesn't 
support persistent connections (but is smart enough to change the connection 
header so the client doesn't get confused).

You could try running JRun as an extension under an external HTTP 1.1 web 
server (such as Apache or IIS).  I don't have experience configuring JRun in 
this fashion, but I believe the web server should manage the connection and 
just pass the requests and responses between the client and container.

Eric

> Hi all,
> 
> We've just successfully made modifications to our Java Servlet application to
> grab the domain and user information via NTLM using JCIFS with Tomcat 4.x, but
> we also have clients that use JRun 4 and are having problems with getting it
> working.
> 
> Everything loads okay, the server will start and when the server is in debug
> mode you get the below message in the log:
> 
> 27/03 14:37:51 debug Created filter [FilterObject name=NTLM HTTP
> Authentication Filter class=jcifs.http.NtlmHttpFilter] mapped to /*
> 
> But when you try to access one of the servlets you get the standard "Cannot
> find server or DNS error", I have tried changing the filter to a single
> servlet and then the other servlets work fine but the one using the NTLM
> filter still shows the error.
> 
> I am using Macromedia JRun 4 SP1 with Sun JRE 1.4.0 on Windows 2000 Server, is
> there any diagnostics I can perform to try to debug this or can anyone offer
> any advice? It's becoming quite urgent as we had assumed that as it worked
> fine under the open source Tomcat that it would work under the commercial JRun
> so quick responses would be much appreciated. :)
> 
> Regards,
> --
> Jason Bainbridge			|   Tel:        +61 8 9444 2777
> Technical Support Consultant	|   Fax:        +61 8 9444 2477
> BMS Solutions Pty Ltd		|   Mobile:     +61 402 786 508
> --
> KDE Web Team - http://kde.org
> webmaster at kde.org
> 
> 


More information about the jcifs mailing list