You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by la...@apache.org on 2002/02/05 02:22:43 UTC
cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/generators ErrorHandler.java
larryi 02/02/04 17:22:43
Modified: src/share/org/apache/tomcat/modules/generators
ErrorHandler.java
Log:
Fix for Bug 4600.
Make the default status code for the RedirectHandler configurable. The
defaultRedirectStatus attribute may be set to "301" or "302". This
default will affect directory redirections done by the StaticInterceptor.
Revision Changes Path
1.24 +19 -2 jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/ErrorHandler.java
Index: ErrorHandler.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/ErrorHandler.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- ErrorHandler.java 31 Dec 2001 22:23:42 -0000 1.23
+++ ErrorHandler.java 5 Feb 2002 01:22:43 -0000 1.24
@@ -81,6 +81,7 @@
public final class ErrorHandler extends BaseInterceptor {
private Context rootContext=null;
boolean showDebugInfo=true;
+ int defaultRedirectStatus=301;
public ErrorHandler() {
}
@@ -89,6 +90,15 @@
showDebugInfo=b;
}
+ public void setDefaultRedirectStatus( String s ) {
+ if( "302".equals(s) )
+ defaultRedirectStatus=302;
+ else if( "301".equals(s) )
+ defaultRedirectStatus=301;
+ else
+ defaultRedirectStatus=301;
+ }
+
public void engineInit(ContextManager cm ) {
}
@@ -143,7 +153,9 @@
// Default status handlers
// Assume existing error pages are valid. Don't overwrite with default.
- ctx.addServlet( new RedirectHandler(this));
+ RedirectHandler rh = new RedirectHandler(this);
+ rh.setDefaultRedirectStatus(defaultRedirectStatus);
+ ctx.addServlet( rh );
if (ctx.getErrorPage("302") == null)
ctx.addErrorPage( "302", "tomcat.redirectHandler");
if (ctx.getErrorPage("301") == null)
@@ -765,6 +777,7 @@
static StringManager sm=StringManager.
getManager("org.apache.tomcat.resources");
int sbNote=0;
+ int defaultRedirectStatus=301;
RedirectHandler(BaseInterceptor bi) {
//setOrigin( Handler.ORIGIN_INTERNAL );
@@ -772,6 +785,10 @@
setModule( bi );
}
+ public void setDefaultRedirectStatus( int status ) {
+ defaultRedirectStatus=status;
+ }
+
// We don't want interceptors called for redirect
// handler
public void doService(Request req, Response res)
@@ -783,7 +800,7 @@
if( res.getStatus() != 301 &&
res.getStatus() != 302 ) {
- res.setStatus( 301 );
+ res.setStatus( defaultRedirectStatus );
}
location = makeAbsolute(req, location);
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>