DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18361>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

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

IIS doesn't like ;jsessionid within uri

           Summary: IIS doesn't like ;jsessionid within uri
           Product: Tomcat 4
           Version: 4.1.19
          Platform: All
        OS/Version: Windows XP
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Connector:Coyote HTTP/1.1
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


AFAIK Servlet API v2.3 defines that in case of URL rewriting session id should 
be put into the uri before query params separated by semicolon, like:

www.xxx.com/uri;jsessionid=...?params

The problem is, that MS IIS doesn't let such URL go through to the application 
server, at least not using forwarding by extension – it just doesn’t recognize 
the extension it should.

Using the previous API (session id as one of the query params) worked perfectly.

Now currently we use WebLogic v6.1 as our application server. Starting with SP3 
I can set a dedicated parameter forcing WLS to use a query param instead 
of “;jsessionid” in the uri.

We are now planning to migrate from WLS to Tomcat, but: I have looked into 
Tomcat’s source code, this method of rewriting URLs is not parametrized, so I 
cannot persuade Tomcat to do the same.

Possible solutions:
a)      get a fix for IIS – our webmaster has called MS, they say they knew 
about it but did not plan to do anything. We could make our own isapi DLL, but 
we are on our own. In fact we do use IIS v4, because of instabilities in IIS v5 
(says our webmaster).
b)      forward based by path not the extension: it hasn’t been tested so is 
not guaranteed to work, and we have so many apps using the same path for static 
and dynamic content, where the static content should remain on IIS, and where 
static is under the control of CMS, that it might be even more difficult than 
to make an isapi.dll :-)
c)      make a Tomcat specific filter (valve, connector – I am yet not sure), 
which would parse outgoing responses and exchange “;jsessionid=…” with a query 
param, then parse incoming requests and set sessionid based on this param
d)      patch Tomcat using inheritance. Not so easy, since the required methods 
(HttpProcessor.processRequest, HttpResponseBase.toEncoded) are private. 
HttpResponseFacade is final, so I can’t overwrite encodeURL as well. Make my 
own Façade?
e)      patch Tomcat: don’t like the idea, since I am then cut off from the 
future Tomcat development
f)      similar solution as WLS: a parameter that decides how to construct URLs 
during rewriting. Is it sensible? What would you say to that?

Any other ideas?

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to