You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by BugRat Mail System <to...@cortexity.com> on 2001/01/21 23:46:31 UTC

BugRat Report #815 has been filed.

Bug report #815 has just been filed.

You can view the report at the following URL:

   <http://znutar.cortexity.com/BugRatViewer/ShowReport/815>

REPORT #815 Details.

Project: Tomcat
Category: Bug Report
SubCategory: New Bug Report
Class: swbug
State: received
Priority: high
Severity: serious
Confidence: public
Environment: 
   Release: 3.2.1
   JVM Release: 1.3
   Operating System: Solaris
   OS Release: 8
   Platform: Sparc

Synopsis: 
getRequestDispatcher works incorrectly

Description:
Running
Apache 1.3.14
mod_ssl 2.7.1-1.3.14
OpenSSL 0.9.6
Tomcat 3.2.1

Running HTTPS (SSL) on a non standard port (445)
cause ajp12 include,forward,sendRedirect to fail all the time.

on ajp13 the following scenario happens, relative urls for request.getRequestDispatcher do not work, result is a ArrayIndexOutOfBoundsException

anyway here is what I have found out using Ajp13

we are using these three methods
a. sendRedirect
b. getRequestDispatcher.include
c. getRequestDispatcher.forward

and we have tried the following redirect strings
1. "LoginFailed.html"
2. "/LoginFailed.html"
3. "/rtx/LoginFailed.html"

these combinations have show to be successfull

a-1 (sendRedirect with LoginFailed.html)
a-3 (sendRedirect with /rtx/LoginFailed.html)
b-2 (include with /LoginFailed.html)
c-2 (forward with /LoginFailed.html)

all other combinations are not working.
If you read the documentation for the getRequestDispatcher it says
ServletRequest.getRequestDispatcher
"The pathname specified may be relative, although it cannot extend outside the current servlet context. If the path begins with a "/" it is interpreted as relative to the current context root. This method returns null if the servlet container cannot return a RequestDispatcher"

but it turns out that Tomcat doesn't support strings that don't start with "/".
and this is a BUG!