DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://issues.apache.org/bugzilla/show_bug.cgi?id=11748.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=11748
Location header for redirection does not contain the port number
[EMAIL PROTECTED] changed:
What|Removed |Added
Status|RESOLVED|REOPENED
Resolution|INVALID |
--- Additional Comments From [EMAIL PROTECTED] 2004-09-10 11:54 ---
there is an actual bug here. In HttpProcessor, when the Host: header has no port
(eg because the client is buggy as described above) the code does this:
if (n 0) {
if (connector.getScheme().equals(http)) {
request.setServerPort(80);
} else if (connector.getScheme().equals(https)) {
request.setServerPort(443);
}
if (proxyName != null)
request.setServerName(proxyName);
else
request.setServerName(value);
}
note that in the above only the proxyName is processed, not the proxyPort. In
other words, if you explicitly tell tomcat to ignore the host header and use
proxy host/port combo, it doesnt in this case, it only uses the host.
the code for host header handling *should* look like this:
} else if (header.equals(DefaultHeaders.HOST_NAME)) {
int n = value.indexOf(':');
// parse and apply host header
if (n 0) {
if (connector.getScheme().equals(http)) {
request.setServerPort(80);
} else if (connector.getScheme().equals(https)) {
request.setServerPort(443);
}
request.setServerName(value);
} else {
request.setServerName(value.substring(0, n).trim());
int port = 80;
try {
port = Integer.parseInt(value.substring(n+1).trim());
} catch (Exception e) {
throw new ServletException
(sm.getString
(httpProcessor.parseHeaders.portNumber));
}
request.setServerPort(port);
}
// apply proxy overrides
if (proxyName != null)
request.setServerName(proxyName);
if (proxyPort != 0)
request.setServerPort(proxyPort);
} ...
the intent here is that any proxy host/port settings are always applied.
We reproduced the problem following a link from Word 2000, linking to tomcat via
the axis tcpmon proxy. linking to any content that returns a redirect shows the
problem (eg http://host:port/foo; redirects to http://host:port/foo/;) Word
sends a host header without the port, obviously a bug, but tomcat's response
ignores the proxy settings due to the bug described above.
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]