Hola Larry:

This code along with some other ( related to SetHookFinder ) .. breaks
completely TC33 auth.., as the Status handler is called recursively ..
First with a 401 and later a 302... 

So i'm getting a error loop message in whenever i try the security
examples..

Any idea on how to fix it  ?

Saludos ,
Ignacio J. Ortega


> -----Mensaje original-----
> De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Enviado el: viernes 6 de julio de 2001 20:41
> Para: [EMAIL PROTECTED]
> Asunto: cvs commit:
> jakarta-tomcat/src/share/org/apache/tomcat/modules/generators
> ErrorHandler.java
> 
> 
> larryi      01/07/06 11:41:02
> 
>   Modified:    src/share/org/apache/tomcat/modules/generators
>                         ErrorHandler.java
>   Log:
>   Fix recursive error handling if web.xml maps error code 404 
> to a non-existent
>   JSP page. With this fix, no response will be sent if status 
> handler is called
>   recursively. You will need to examine the log output to see 
> the error.
>   
>   If web.xml maps error code 404 to a non-existent html, use 
> default "not found"
>   handler instead of default "status" handler.
>   
>   Revision  Changes    Path
>   1.14      +19 -3     
> 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/g
> enerators/ErrorHandler.java,v
>   retrieving revision 1.13
>   retrieving revision 1.14
>   diff -u -r1.13 -r1.14
>   --- ErrorHandler.java       2001/07/05 20:40:45     1.13
>   +++ ErrorHandler.java       2001/07/06 18:41:00     1.14
>   @@ -191,8 +191,15 @@
>       }
>    
>       boolean isDefaultHandler = false;
>   +        if ( statusLoop( ctx, req ) ){
>   +            log( "Error loop for " + req + " error code " + code);
>   +            return;
>   +        }
>       if( errorServlet==null ) {
>   -       errorServlet=ctx.getServletByName( "tomcat.statusHandler");
>   +            if( code == 404 )
>   +                errorServlet=ctx.getServletByName( 
> "tomcat.notFoundHandler");
>   +            else
>   +                errorServlet=ctx.getServletByName( 
> "tomcat.statusHandler");
>           isDefaultHandler = true;
>       }
>    
>   @@ -389,9 +396,18 @@
>       }
>       return false;
>        }
>   -
>   -
>    
>   +    /** Handle the case of status handler generating an error
>   +     */
>   +    private boolean statusLoop( Context ctx, Request req ) {
>   +        if ( 
> req.getAttribute("javax.servlet.error.status_code") != null ) {
>   +            if( ctx.getDebug() > 0 )
>   +                ctx.log( "Error: nested error inside 
> status servlet " +
>   +                        
> req.getAttribute("javax.servlet.error.status_code"));
>   +            return true;
>   +        }
>   +        return false;
>   +    }
>        
>    }
>    
>   
>   
>   
> 

Reply via email to