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: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>