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>