billbarker    02/02/25 19:26:55

  Modified:    src/share/org/apache/tomcat/core Request.java
  Log:
  Fix NPE when using AccessLog without having a ROOT context defined.
  
  Now we won't attempt to authenticate if we haven't (successfully) done a ContextMap 
(in line with the servlet spec).
  
  Fix for bug #6604
  Reported by: John Swapceinski [EMAIL PROTECTED]
  
  Revision  Changes    Path
  1.113     +14 -11    jakarta-tomcat/src/share/org/apache/tomcat/core/Request.java
  
  Index: Request.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Request.java,v
  retrieving revision 1.112
  retrieving revision 1.113
  diff -u -r1.112 -r1.113
  --- Request.java      10 Sep 2001 06:43:01 -0000      1.112
  +++ Request.java      26 Feb 2002 03:26:55 -0000      1.113
  @@ -562,20 +562,23 @@
   
       public String getRemoteUser() {
        if( notAuthenticated ) {
  -         notAuthenticated=false;
  +         Context ctx = getContext();
  +         if( ctx != null ) {
  +             notAuthenticated=false;
   
  -         // Call all authentication callbacks. If any of them is able to
  -         //  identify the user it will set the principal in req.
  -         int status=0;
  -         BaseInterceptor reqI[]= getContext().getContainer().
  -             getInterceptors(Container.H_authenticate);
  -         for( int i=0; i< reqI.length; i++ ) {
  -             status=reqI[i].authenticate( this, response );
  -             if ( status != BaseInterceptor.DECLINED ) {
  -                 break;
  +             // Call all authentication callbacks. If any of them is able to
  +             //      identify the user it will set the principal in req.
  +             int status=0;
  +             BaseInterceptor reqI[]= ctx.getContainer().
  +                 getInterceptors(Container.H_authenticate);
  +             for( int i=0; i< reqI.length; i++ ) {
  +                 status=reqI[i].authenticate( this, response );
  +                 if ( status != BaseInterceptor.DECLINED ) {
  +                     break;
  +                 }
                }
  +             //context.log("Auth " + remoteUser );
            }
  -         //context.log("Auth " + remoteUser );
        }
        return remoteUser;
       }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to