cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2004-12-18 Thread markt
markt   2004/12/18 03:55:37

  Modified:catalina/src/conf web.xml
   catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  Fix bug 31201. When including static files with  platform
default file encoding is no longer assumed for the static file. This was
causing i18m issues, particularly for Japanese users.
- Patch supplied (with minor mods) by Takayuki Kaneko
  
  Revision  ChangesPath
  1.60  +3 -0  jakarta-tomcat-4.0/catalina/src/conf/web.xml
  
  Index: web.xml
  ===
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/conf/web.xml,v
  retrieving revision 1.59
  retrieving revision 1.60
  diff -u -r1.59 -r1.60
  --- web.xml   28 Sep 2004 21:51:49 -  1.59
  +++ web.xml   18 Dec 2004 11:55:37 -  1.60
  @@ -27,6 +27,9 @@
 
 
 
  +  
  +  
  +  
 
 
 
  
  
  
  1.65  +39 -5 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- DefaultServlet.java   22 Nov 2004 19:37:06 -  1.64
  +++ DefaultServlet.java   18 Dec 2004 11:55:37 -  1.65
  @@ -127,6 +127,13 @@
   
   
   /**
  + * File encoding to be used when reading static files. If none is 
specified
  + * the platform default is used.
  + */
  +protected String fileEncoding = null;
  +
  +
  +/**
* The MD5 helper object for this class.
*/
   protected static final MD5Encoder md5Encoder = new MD5Encoder();
  @@ -250,6 +257,12 @@
   } catch (Throwable t) {
   ;
   }
  +try {
  +value = getServletConfig().getInitParameter("fileEncoding");
  +fileEncoding = value;
  +} catch (Throwable t) {
  +;
  +}
   
   // Sanity check on the specified buffer sizes
   if (input < 256)
  @@ -1736,8 +1749,14 @@
   IOException exception = null;
   
   InputStream resourceInputStream = resourceInfo.getStream();
  -// FIXME : i18n ?
  -Reader reader = new InputStreamReader(resourceInputStream);
  +
  +Reader reader;
  +if (fileEncoding == null) {
  +reader = new InputStreamReader(resourceInputStream);
  +} else {
  +reader = new InputStreamReader(resourceInputStream,
  +   fileEncoding);
  +}
   
   // Copy the input stream to the output stream
   exception = copyRange(reader, writer);
  @@ -1808,7 +1827,15 @@
   IOException exception = null;
   
   InputStream resourceInputStream = resourceInfo.getStream();
  -Reader reader = new InputStreamReader(resourceInputStream);
  +
  +Reader reader;
  +if (fileEncoding == null) {
  +reader = new InputStreamReader(resourceInputStream);
  +} else {
  +reader = new InputStreamReader(resourceInputStream,
  +   fileEncoding);
  +}
  +
   exception = copyRange(reader, writer, range.start, range.end);
   
   // Clean up the input stream
  @@ -1902,7 +1929,14 @@
   while ( (exception == null) && (ranges.hasMoreElements()) ) {
   
   InputStream resourceInputStream = resourceInfo.getStream();
  -Reader reader = new InputStreamReader(resourceInputStream);
  +
  +Reader reader;
  +if (fileEncoding == null) {
  +reader = new InputStreamReader(resourceInputStream);
  +} else {
  +reader = new InputStreamReader(resourceInputStream,
  +   fileEncoding);
  +}
   
   Range currentRange = (Range) ranges.nextElement();
   
  
  
  

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



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2004-11-22 Thread markt
markt   2004/11/22 11:37:06

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  Port Remy's fix for ensuring mime boundaries start with a new line
  
  Revision  ChangesPath
  1.64  +6 -2  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.63
  retrieving revision 1.64
  diff -u -r1.63 -r1.64
  --- DefaultServlet.java   26 Aug 2004 21:38:13 -  1.63
  +++ DefaultServlet.java   22 Nov 2004 19:37:06 -  1.64
  @@ -1241,7 +1241,7 @@
   
   // Parsing the range list
   while (commaTokenizer.hasMoreTokens()) {
  -String rangeDefinition = commaTokenizer.nextToken();
  +String rangeDefinition = commaTokenizer.nextToken().trim();
   
   Range currentRange = new Range();
   currentRange.length = fileLength;
  @@ -1851,6 +1851,7 @@
   Range currentRange = (Range) ranges.nextElement();
   
   // Writing MIME header.
  +ostream.println();
   ostream.println("--" + mimeSeparation);
   if (contentType != null)
   ostream.println("Content-Type: " + contentType);
  @@ -1871,6 +1872,7 @@
   
   }
   
  +ostream.println();
   ostream.print("--" + mimeSeparation + "--");
   
   // Rethrow any exception that has occurred
  @@ -1905,6 +1907,7 @@
   Range currentRange = (Range) ranges.nextElement();
   
   // Writing MIME header.
  +writer.println();
   writer.println("--" + mimeSeparation);
   if (contentType != null)
   writer.println("Content-Type: " + contentType);
  @@ -1925,6 +1928,7 @@
   
   }
   
  +writer.println();
   writer.print("--" + mimeSeparation + "--");
   
   // Rethrow any exception that has occurred
  
  
  

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



Re: Re: cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2004-07-10 Thread submit
*** This is an automatic message - DO NOT REPLY TO THIS MESSAGE ***





x-xxx-x.com

http://www.x-xxx-x.com/



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



Re: cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2004-07-10 Thread submit
*** This is an automatic message - DO NOT REPLY TO THIS MESSAGE ***





x-xxx-x.com

http://www.x-xxx-x.com/



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



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2004-07-10 Thread markt
markt   2004/07/10 13:01:33

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  Fix bug 27293. If-Unmodified-Since now takes account of HTTP header not including 
milliseconds
   - Port of Remy's patch in TC5.
  
  Revision  ChangesPath
  1.62  +5 -5  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.61
  retrieving revision 1.62
  diff -u -r1.61 -r1.62
  --- DefaultServlet.java   8 May 2004 22:30:13 -   1.61
  +++ DefaultServlet.java   10 Jul 2004 20:01:33 -  1.62
  @@ -1715,7 +1715,7 @@
   long lastModified = resourceInfo.date;
   long headerValue = request.getDateHeader("If-Unmodified-Since");
   if (headerValue != -1) {
  -if ( lastModified > headerValue ) {
  +if ( lastModified > (headerValue + 1000)) {
   // The entity has not been modified since the date
   // specified by the client. This is not an error case.
   response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
  
  
  

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



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2003-11-21 Thread funkman
funkman 2003/11/21 11:00:52

  Modified:catalina/src/conf web.xml
   catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  Allow welcome files and directory redirects to be urlEncoded to satisfy
  many tomcat-user complaints. I thought there were Bugzilla reports
  too but can't find them
  
  Default behavior is to not encode for backwards compatibility.
  
  Revision  ChangesPath
  1.51  +3 -0  jakarta-tomcat-4.0/catalina/src/conf/web.xml
  
  Index: web.xml
  ===
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/conf/web.xml,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- web.xml   18 Jun 2003 20:52:54 -  1.50
  +++ web.xml   21 Nov 2003 19:00:52 -  1.51
  @@ -39,6 +39,9 @@
 
 
 
  +  
  +  
  +  
   
   
   default
  
  
  
  1.60  +46 -28
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.59
  retrieving revision 1.60
  diff -u -r1.59 -r1.60
  --- DefaultServlet.java   8 Jan 2003 19:38:05 -   1.59
  +++ DefaultServlet.java   21 Nov 2003 19:00:52 -  1.60
  @@ -165,6 +165,12 @@
   
   
   /**
  + * Calls encodeRedirectURL on redirects? default=false
  + */
  +protected boolean encodeRedirects = false;
  +
  +
  +/**
* The set of welcome files for this web application
*/
   protected String welcomes[] = new String[0];
  @@ -294,6 +300,12 @@
   } catch (Throwable t) {
   ;
   }
  +try {
  +value = getServletConfig().getInitParameter("encodeRedirects");
  +encodeRedirects = (new Boolean(value)).booleanValue();
  +} catch (Throwable t) {
  +;
  +}
   
   // Sanity check on the specified buffer sizes
   if (input < 256)
  @@ -627,12 +639,12 @@
   
   
   /**
  - * Handle a partial PUT.  New content specified in request is appended to 
  - * existing content in oldRevisionContent (if present). This code does 
  + * Handle a partial PUT.  New content specified in request is appended to
  + * existing content in oldRevisionContent (if present). This code does
* not support simultaneous partial updates to the same resource.
*/
  -protected File executePartialPut(HttpServletRequest req, Range range, 
  - String path) 
  +protected File executePartialPut(HttpServletRequest req, Range range,
  + String path)
   throws IOException {
   
   // Append data specified in ranges to existing content for this
  @@ -648,7 +660,7 @@
   contentFile.deleteOnExit();
   }
   
  -RandomAccessFile randAccessContentFile = 
  +RandomAccessFile randAccessContentFile =
   new RandomAccessFile(contentFile, "rw");
   
   Resource oldResource = null;
  @@ -661,8 +673,8 @@
   
   // Copy data in oldRevisionContent to contentFile
   if (oldResource != null) {
  -BufferedInputStream bufOldRevStream = 
  -new BufferedInputStream(oldResource.streamContent(), 
  +BufferedInputStream bufOldRevStream =
  +new BufferedInputStream(oldResource.streamContent(),
   BUFFER_SIZE);
   
   int numBytesRead;
  @@ -763,9 +775,9 @@
ResourceInfo resourceInfo)
   throws IOException {
   
  -return checkIfMatch(request, response, resourceInfo) 
  -&& checkIfModifiedSince(request, response, resourceInfo) 
  -&& checkIfNoneMatch(request, response, resourceInfo) 
  +return checkIfMatch(request, response, resourceInfo)
  +&& checkIfModifiedSince(request, response, resourceInfo)
  +&& checkIfNoneMatch(request, response, resourceInfo)
   && checkIfUnmodifiedSince(request, response, resourceInfo);
   
   }
  @@ -784,7 +796,7 @@
   } else if (resourceInfo.weakETag != null) {
   return resourceInfo.weakETag;
   } else {
  -return "W/\"" + resourceInfo.length + "-" 
  +return "W/\"" + resourceInfo.length + "-"
   + resourceInfo.date + "\"";
   }
   }
  @@ -921,7 +933,7 @@
   ResourceInfo resourceInfo = new ResourceInfo(path, resources);
   
   if (!resourceInfo.exists) {
  -response.sendError(HttpServletResponse.SC_NOT_FOUND, 
  +response.sendError(HttpServle

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2003-01-08 Thread remm
remm2003/01/08 11:38:05

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Invalid date headers should be ignored.
  - Bug 15890.
  
  Revision  ChangesPath
  1.59  +6 -6  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.58
  retrieving revision 1.59
  diff -u -r1.58 -r1.59
  --- DefaultServlet.java   18 Sep 2002 13:16:39 -  1.58
  +++ DefaultServlet.java   8 Jan 2003 19:38:05 -   1.59
  @@ -1623,7 +1623,7 @@
   }
   }
   } catch(IllegalArgumentException illegalArgument) {
  -return false;
  +return true;
   }
   return true;
   
  @@ -1714,7 +1714,7 @@
   }
   }
   } catch(IllegalArgumentException illegalArgument) {
  -return false;
  +return true;
   }
   return true;
   
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java LocalStrings.properties

2002-10-08 Thread remm

remm2002/10/08 00:56:04

  Modified:catalina/src/share/org/apache/catalina/servlets Tag:
tomcat_40_branch DefaultServlet.java
LocalStrings.properties
  Log:
  - Add additional safeguards for 4.0.x.
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.39.2.7  +22 -4 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.39.2.6
  retrieving revision 1.39.2.7
  diff -u -r1.39.2.6 -r1.39.2.7
  --- DefaultServlet.java   18 Apr 2002 03:08:04 -  1.39.2.6
  +++ DefaultServlet.java   8 Oct 2002 07:56:04 -   1.39.2.7
  @@ -97,6 +97,7 @@
   import javax.servlet.ServletException;
   import javax.servlet.ServletContext;
   import javax.servlet.ServletOutputStream;
  +import javax.servlet.UnavailableException;
   import javax.servlet.http.HttpServlet;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
  @@ -515,6 +516,11 @@
   if (debug > 999)
   showRequestInfo(request);
   
  +// Verify that we were not accessed using the invoker servlet
  +if (request.getAttribute(Globals.INVOKED_ATTR) != null)
  +throw new UnavailableException
  +(sm.getString("defaultServlet.cannotInvoke"));
  +
   // Serve the requested resource, including the data content
   serveResource(request, response, true);
   
  @@ -534,6 +540,11 @@
 HttpServletResponse response)
   throws IOException, ServletException {
   
  +// Verify that we were not accessed using the invoker servlet
  +if (request.getAttribute(Globals.INVOKED_ATTR) != null)
  +throw new UnavailableException
  +(sm.getString("defaultServlet.cannotInvoke"));
  +
   // Serve the requested resource, without the data content
   serveResource(request, response, false);
   
  @@ -552,7 +563,14 @@
   protected void doPost(HttpServletRequest request,
 HttpServletResponse response)
   throws IOException, ServletException {
  +
  +// Verify that we were not accessed using the invoker servlet
  +if (request.getAttribute(Globals.INVOKED_ATTR) != null)
  +throw new UnavailableException
  +(sm.getString("defaultServlet.cannotInvoke"));
  +
   doGet(request, response);
  +
   }
   
   
  
  
  
  1.9.2.1   +1 -0  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/LocalStrings.properties
  
  Index: LocalStrings.properties
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/LocalStrings.properties,v
  retrieving revision 1.9
  retrieving revision 1.9.2.1
  diff -u -r1.9 -r1.9.2.1
  --- LocalStrings.properties   15 Sep 2001 23:31:30 -  1.9
  +++ LocalStrings.properties   8 Oct 2002 07:56:04 -   1.9.2.1
  @@ -1,3 +1,4 @@
  +defaultServlet.cannotInvoke=Cannot invoke default servlet through invoker
   defaultservlet.directorylistingfor=Directory Listing for:
   defaultservlet.upto=Up to:
   defaultservlet.subdirectories=Subdirectories:
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-09-18 Thread remm

remm2002/09/18 06:16:39

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Relax the writer use policy to allow including files with unknown
MIME types, which in that case will be assumed to be text. This is to make
Tomcat more user friendly, although this has potential for some misuse.
  - Patch submitted by Tim Funk 
  
  Revision  ChangesPath
  1.58  +6 -6  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.57
  retrieving revision 1.58
  diff -u -r1.57 -r1.58
  --- DefaultServlet.java   14 Jun 2002 03:19:43 -  1.57
  +++ DefaultServlet.java   18 Sep 2002 13:16:39 -  1.58
  @@ -1023,8 +1023,8 @@
   } catch (IllegalStateException e) {
   // If it fails, we try to get a Writer instead if we're
   // trying to serve a text file
  -if ( (contentType != null)
  - && (contentType.startsWith("text")) ) {
  +if ( (contentType == null)
  + || (contentType.startsWith("text")) ) {
   writer = response.getWriter();
   } else {
   throw e;
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-06-13 Thread remm

remm2002/06/13 20:19:43

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Add try/catch for IAE.
  - Patch submitted by James Carman 
  
  Revision  ChangesPath
  1.57  +32 -27
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- DefaultServlet.java   13 Jun 2002 22:34:42 -  1.56
  +++ DefaultServlet.java   14 Jun 2002 03:19:43 -  1.57
  @@ -1607,20 +1607,23 @@
HttpServletResponse response,
ResourceInfo resourceInfo)
   throws IOException {
  -
  -long headerValue = request.getDateHeader("If-Modified-Since");
  -long lastModified = resourceInfo.date;
  -if (headerValue != -1) {
  -
  -// If an If-None-Match header has been specified, if modified since
  -// is ignored.
  -if ((request.getHeader("If-None-Match") == null) 
  -&& (lastModified <= headerValue + 1000)) {
  -// The entity has not been modified since the date
  -// specified by the client. This is not an error case.
  -response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
  -return false;
  +try {
  +long headerValue = request.getDateHeader("If-Modified-Since");
  +long lastModified = resourceInfo.date;
  +if (headerValue != -1) {
  +
  +// If an If-None-Match header has been specified, if modified since
  +// is ignored.
  +if ((request.getHeader("If-None-Match") == null) 
  +&& (lastModified <= headerValue + 1000)) {
  +// The entity has not been modified since the date
  +// specified by the client. This is not an error case.
  +response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
  +return false;
  +}
   }
  +} catch(IllegalArgumentException illegalArgument) {
  +return false;
   }
   return true;
   
  @@ -1699,17 +1702,19 @@
  HttpServletResponse response,
  ResourceInfo resourceInfo)
   throws IOException {
  -
  -long lastModified = resourceInfo.date;
  -long headerValue = request.getDateHeader("If-Unmodified-Since");
  -if (headerValue != -1) {
  -if ( lastModified > headerValue ) {
  -// The entity has not been modified since the date
  -// specified by the client. This is not an error case.
  -response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
  -return false;
  +try {
  +long lastModified = resourceInfo.date;
  +long headerValue = request.getDateHeader("If-Unmodified-Since");
  +if (headerValue != -1) {
  +if ( lastModified > headerValue ) {
  +// The entity has not been modified since the date
  +// specified by the client. This is not an error case.
  +response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
  +return false;
  +}
   }
  -
  +} catch(IllegalArgumentException illegalArgument) {
  +return false;
   }
   return true;
   
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-06-13 Thread remm

remm2002/06/13 15:34:42

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Apply patch to fix bug 8013: DefaultServlet Throws NumberFormatException.
  - Now uses Request.getDateHeader instead of using instance local date
formats, which is not thread safe.
  - Patch submitted by James Carman . Very
useful patch. Thanks !
  
  Revision  ChangesPath
  1.56  +176 -132  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.55
  retrieving revision 1.56
  diff -u -r1.55 -r1.56
  --- DefaultServlet.java   11 May 2002 05:06:25 -  1.55
  +++ DefaultServlet.java   13 Jun 2002 22:34:42 -  1.56
  @@ -763,135 +763,11 @@
ResourceInfo resourceInfo)
   throws IOException {
   
  -String eTag = getETag(resourceInfo);
  -long fileLength = resourceInfo.length;
  -long lastModified = resourceInfo.date;
  -
  -StringTokenizer commaTokenizer;
  -
  -String headerValue;
  -
  -// Checking If-Match
  -headerValue = request.getHeader("If-Match");
  -if (headerValue != null) {
  -if (headerValue.indexOf('*') == -1) {
  -
  -commaTokenizer = new StringTokenizer(headerValue, ",");
  -boolean conditionSatisfied = false;
  -
  -while (!conditionSatisfied && commaTokenizer.hasMoreTokens()) {
  -String currentToken = commaTokenizer.nextToken();
  -if (currentToken.trim().equals(eTag))
  -conditionSatisfied = true;
  -}
  -
  -// If none of the given ETags match, 412 Precodition failed is
  -// sent back
  -if (!conditionSatisfied) {
  -response.sendError
  -(HttpServletResponse.SC_PRECONDITION_FAILED);
  -return false;
  -}
  -
  -}
  -}
  -
  -// Checking If-Modified-Since
  -headerValue = request.getHeader("If-Modified-Since");
  -if (headerValue != null) {
  -
  -// If an If-None-Match header has been specified, if modified since
  -// is ignored.
  -if (request.getHeader("If-None-Match") == null) {
  -
  -Date date = null;
  -
  -// Parsing the HTTP Date
  -for (int i = 0; (date == null) && (i < formats.length); i++) {
  -try {
  -date = formats[i].parse(headerValue);
  -} catch (ParseException e) {
  -;
  -}
  -}
  -
  -if ((date != null)
  -&& (lastModified <= (date.getTime() + 1000)) ) {
  -// The entity has not been modified since the date
  -// specified by the client. This is not an error case.
  -response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
  -return false;
  -}
  -
  -}
  -
  -}
  -
  -// Checking If-None-Match
  -headerValue = request.getHeader("If-None-Match");
  -if (headerValue != null) {
  -
  -boolean conditionSatisfied = false;
  -
  -if (!headerValue.equals("*")) {
  -
  -commaTokenizer = new StringTokenizer(headerValue, ",");
  -
  -while (!conditionSatisfied && commaTokenizer.hasMoreTokens()) {
  -String currentToken = commaTokenizer.nextToken();
  -if (currentToken.trim().equals(eTag))
  -conditionSatisfied = true;
  -}
  +return checkIfMatch(request, response, resourceInfo) 
  +&& checkIfModifiedSince(request, response, resourceInfo) 
  +&& checkIfNoneMatch(request, response, resourceInfo) 
  +&& checkIfUnmodifiedSince(request, response, resourceInfo);
   
  -} else {
  -conditionSatisfied = true;
  -}
  -
  -if (conditionSatisfied) {
  -
  -// For GET and HEAD, we should respond with
  -// 304 Not Modified.
  -// For every other method, 412 Precondition Failed is sent
  -// back.
  -if ( ("GET".equals(request.getMethod()))
  - || ("HEAD".equals(request.getMethod())) ) {
  -response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
  -return false;
  -  

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-04-17 Thread billbarker

billbarker02/04/17 20:08:04

  Modified:catalina/src/share/org/apache/catalina/core Tag:
tomcat_40_branch ApplicationHttpRequest.java
   catalina/src/share/org/apache/catalina/servlets Tag:
tomcat_40_branch DefaultServlet.java
  Log:
  Port fix for bug #8092 from the HEAD branch.
  
  Reported by: Andreas Junghans [EMAIL PROTECTED]
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.10.2.1  +9 -6  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java
  
  Index: ApplicationHttpRequest.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java,v
  retrieving revision 1.10
  retrieving revision 1.10.2.1
  diff -u -r1.10 -r1.10.2.1
  --- ApplicationHttpRequest.java   22 Jul 2001 20:25:08 -  1.10
  +++ ApplicationHttpRequest.java   18 Apr 2002 03:08:04 -  1.10.2.1
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java,v
 1.10 2001/07/22 20:25:08 pier Exp $
  - * $Revision: 1.10 $
  - * $Date: 2001/07/22 20:25:08 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java,v
 1.10.2.1 2002/04/18 03:08:04 billbarker Exp $
  + * $Revision: 1.10.2.1 $
  + * $Date: 2002/04/18 03:08:04 $
*
* 
*
  @@ -94,7 +94,7 @@
* keep these two classes in synchronization when making changes!
*
* @author Craig R. McClanahan
  - * @version $Revision: 1.10 $ $Date: 2001/07/22 20:25:08 $
  + * @version $Revision: 1.10.2.1 $ $Date: 2002/04/18 03:08:04 $
*/
   
   class ApplicationHttpRequest extends HttpServletRequestWrapper {
  @@ -513,8 +513,11 @@
   Enumeration names = request.getAttributeNames();
   while (names.hasMoreElements()) {
   String name = (String) names.nextElement();
  -Object value = request.getAttribute(name);
  -attributes.put(name, value);
  +if( ! ( Globals.REQUEST_URI_ATTR.equals(name) ||
  +Globals.SERVLET_PATH_ATTR.equals(name) ) ) {
  +Object value = request.getAttribute(name);
  +attributes.put(name, value);
  +}
   }
   }
   
  
  
  
  No   revision
  
  
  No   revision
  
  
  1.39.2.6  +5 -5  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.39.2.5
  retrieving revision 1.39.2.6
  diff -u -r1.39.2.5 -r1.39.2.6
  --- DefaultServlet.java   3 Jan 2002 10:44:32 -   1.39.2.5
  +++ DefaultServlet.java   18 Apr 2002 03:08:04 -  1.39.2.6
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.39.2.5 2002/01/03 10:44:32 remm Exp $
  - * $Revision: 1.39.2.5 $
  - * $Date: 2002/01/03 10:44:32 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.39.2.6 2002/04/18 03:08:04 billbarker Exp $
  + * $Revision: 1.39.2.6 $
  + * $Date: 2002/04/18 03:08:04 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.39.2.5 $ $Date: 2002/01/03 10:44:32 $
  + * @version $Revision: 1.39.2.6 $ $Date: 2002/04/18 03:08:04 $
*/
   
   public class DefaultServlet
  @@ -1093,7 +1093,7 @@
   
   // Checking If headers
   boolean included =
  -(request.getAttribute(Globals.REQUEST_URI_ATTR) != null);
  +(request.getAttribute(Globals.CONTEXT_PATH_ATTR) != null);
   if (!included 
   && !checkIfHeaders(request, response, resourceInfo)) {
   return;
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




Re: cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-04-17 Thread Remy Maucherat

> billbarker02/04/16 22:49:59
>
>   Modified:catalina/src/share/org/apache/catalina/core
> ApplicationHttpRequest.java
>catalina/src/share/org/apache/catalina/servlets
> DefaultServlet.java
>   Log:
>   Attempt to port the 3.3.x logic to 4.x.
>
>   This fixes the examples in bug #8092.  I don't know what else it breaks
> (so I'm not porting to the 4.0 branch).  I think that this is OK, but feel
> free to -1 if I'm breaking something that I shouldn't be.

Wow, your fix is really elegant and it looks very safe too :)
The tester doesn't report any failure so I think it is ok.
Great job !

Remy


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




Re: cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-04-17 Thread Andreas Junghans

Hi Bill,

> billbarker02/04/16 22:49:59
>
>   Modified:catalina/src/share/org/apache/catalina/core
> ApplicationHttpRequest.java
>catalina/src/share/org/apache/catalina/servlets
> DefaultServlet.java
>   Log:
>   Attempt to port the 3.3.x logic to 4.x.
>
>   This fixes the examples in bug #8092.  I don't know what else it breaks
(so I'm not porting to the 4.0 branch).  I think that this is OK, but feel
free to -1 if I'm breaking something that I shouldn't be.

thanks for the fix, it seems to correct all issues I encountered :-). Your
solution is much more elegant (and less intrusive) than what I proposed. I
never thought of just swallowing the servlet_path attribute when doing a
forward, but it doesn't seem to violate the spec or create any obvious
problems.

Many thanks again,

  Andreas



--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-04-16 Thread billbarker

billbarker02/04/16 22:49:59

  Modified:catalina/src/share/org/apache/catalina/core
ApplicationHttpRequest.java
   catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  Attempt to port the 3.3.x logic to 4.x.
  
  This fixes the examples in bug #8092.  I don't know what else it breaks (so I'm not 
porting to the 4.0 branch).  I think that this is OK, but feel free to -1 if I'm 
breaking something that I shouldn't be.
  
  Revision  ChangesPath
  1.11  +9 -6  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java
  
  Index: ApplicationHttpRequest.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ApplicationHttpRequest.java   22 Jul 2001 20:25:08 -  1.10
  +++ ApplicationHttpRequest.java   17 Apr 2002 05:49:59 -  1.11
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java,v
 1.10 2001/07/22 20:25:08 pier Exp $
  - * $Revision: 1.10 $
  - * $Date: 2001/07/22 20:25:08 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java,v
 1.11 2002/04/17 05:49:59 billbarker Exp $
  + * $Revision: 1.11 $
  + * $Date: 2002/04/17 05:49:59 $
*
* 
*
  @@ -94,7 +94,7 @@
* keep these two classes in synchronization when making changes!
*
* @author Craig R. McClanahan
  - * @version $Revision: 1.10 $ $Date: 2001/07/22 20:25:08 $
  + * @version $Revision: 1.11 $ $Date: 2002/04/17 05:49:59 $
*/
   
   class ApplicationHttpRequest extends HttpServletRequestWrapper {
  @@ -513,8 +513,11 @@
   Enumeration names = request.getAttributeNames();
   while (names.hasMoreElements()) {
   String name = (String) names.nextElement();
  -Object value = request.getAttribute(name);
  -attributes.put(name, value);
  +if( ! ( Globals.REQUEST_URI_ATTR.equals(name) ||
  +Globals.SERVLET_PATH_ATTR.equals(name) ) ) {
  +Object value = request.getAttribute(name);
  +attributes.put(name, value);
  +}
   }
   }
   
  
  
  
  1.54  +5 -5  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- DefaultServlet.java   16 Apr 2002 10:34:58 -  1.53
  +++ DefaultServlet.java   17 Apr 2002 05:49:59 -  1.54
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.53 2002/04/16 10:34:58 remm Exp $
  - * $Revision: 1.53 $
  - * $Date: 2002/04/16 10:34:58 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.54 2002/04/17 05:49:59 billbarker Exp $
  + * $Revision: 1.54 $
  + * $Date: 2002/04/17 05:49:59 $
*
* 
*
  @@ -125,7 +125,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.53 $ $Date: 2002/04/16 10:34:58 $
  + * @version $Revision: 1.54 $ $Date: 2002/04/17 05:49:59 $
*/
   
   public class DefaultServlet
  @@ -1163,7 +1163,7 @@
   
   // Checking If headers
   boolean included =
  -(request.getAttribute(Globals.REQUEST_URI_ATTR) != null);
  +(request.getAttribute(Globals.CONTEXT_PATH_ATTR) != null);
   if (!included 
   && !checkIfHeaders(request, response, resourceInfo)) {
   return;
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-04-16 Thread remm

remm02/04/16 03:34:59

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Apply patch for bug 8099.
Submitted by Jürgen Moßgraber 
  
  Revision  ChangesPath
  1.53  +7 -21 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- DefaultServlet.java   16 Mar 2002 05:28:15 -  1.52
  +++ DefaultServlet.java   16 Apr 2002 10:34:58 -  1.53
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.52 2002/03/16 05:28:15 remm Exp $
  - * $Revision: 1.52 $
  - * $Date: 2002/03/16 05:28:15 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.53 2002/04/16 10:34:58 remm Exp $
  + * $Revision: 1.53 $
  + * $Date: 2002/04/16 10:34:58 $
*
* 
*
  @@ -125,7 +125,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.52 $ $Date: 2002/03/16 05:28:15 $
  + * @version $Revision: 1.53 $ $Date: 2002/04/16 10:34:58 $
*/
   
   public class DefaultServlet
  @@ -1547,23 +1547,9 @@
   
   StringBuffer result = new StringBuffer(rewriteUrl(redirectPath));
   
  -Enumeration enum = request.getParameterNames();
  -if (enum.hasMoreElements())
  -result.append("?");
  -
  -while (enum.hasMoreElements()) {
  -String name = (String) enum.nextElement();
  -String[] values = request.getParameterValues(name);
  -for (int i = 0; i < values.length; i++) {
  -result.append(rewriteUrl(name));
  -result.append("=");
  -result.append(rewriteUrl(values[i]));
  -if (i < (values.length - 1))
  -result.append("&");
  -}
  -if (enum.hasMoreElements())
  -result.append("&");
  -}
  +String query = request.getQueryString ();
  +if (query != null)
  +result.append ("?").append (query);
   
   return result.toString();
   
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-03-15 Thread remm

remm02/03/15 21:28:15

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Using the URL encoded requestURI can lead to double URL encoding.
Note: Some of the redirects could be avoided. This will be done in a later
refactoring.
  
  Revision  ChangesPath
  1.52  +11 -5 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- DefaultServlet.java   9 Mar 2002 23:22:38 -   1.51
  +++ DefaultServlet.java   16 Mar 2002 05:28:15 -  1.52
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.51 2002/03/09 23:22:38 remm Exp $
  - * $Revision: 1.51 $
  - * $Date: 2002/03/09 23:22:38 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.52 2002/03/16 05:28:15 remm Exp $
  + * $Revision: 1.52 $
  + * $Date: 2002/03/16 05:28:15 $
*
* 
*
  @@ -125,7 +125,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.51 $ $Date: 2002/03/09 23:22:38 $
  + * @version $Revision: 1.52 $ $Date: 2002/03/16 05:28:15 $
*/
   
   public class DefaultServlet
  @@ -1135,7 +1135,13 @@
   if (resourceInfo.collection) {
   
   if (!request.getRequestURI().endsWith("/")) {
  -String redirectPath = request.getRequestURI() + "/";
  +String redirectPath = path;
  +String contextPath = request.getContextPath();
  +if ((contextPath != null) && (!contextPath.equals("/"))) {
  +redirectPath = contextPath + redirectPath;
  +}
  +if (!(redirectPath.endsWith("/")))
  +redirectPath = redirectPath + "/";
   redirectPath = appendParameters(request, redirectPath);
   response.sendRedirect(redirectPath);
   return;
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java WebdavServlet.java

2002-03-09 Thread remm

remm02/03/09 15:22:38

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java WebdavServlet.java
  Log:
  - Add some hooks to allow the directory context implementation
to compute strong etags.
  
  Revision  ChangesPath
  1.51  +22 -26
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- DefaultServlet.java   8 Jan 2002 12:14:57 -   1.50
  +++ DefaultServlet.java   9 Mar 2002 23:22:38 -   1.51
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.50 2002/01/08 12:14:57 remm Exp $
  - * $Revision: 1.50 $
  - * $Date: 2002/01/08 12:14:57 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.51 2002/03/09 23:22:38 remm Exp $
  + * $Revision: 1.51 $
  + * $Date: 2002/03/09 23:22:38 $
*
* 
*
  @@ -125,7 +125,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.50 $ $Date: 2002/01/08 12:14:57 $
  + * @version $Revision: 1.51 $ $Date: 2002/03/09 23:22:38 $
*/
   
   public class DefaultServlet
  @@ -785,7 +785,7 @@
ResourceInfo resourceInfo)
   throws IOException {
   
  -String eTag = getETag(resourceInfo, true);
  +String eTag = getETag(resourceInfo);
   long fileLength = resourceInfo.length;
   long lastModified = resourceInfo.date;
   
  @@ -918,31 +918,21 @@
   
   
   /**
  - * Get the ETag value associated with a file.
  - *
  - * @param resourceInfo File object
  - * @param strong True if we want a strong ETag, in which case a checksum
  - * of the file has to be calculated
  - */
  -protected String getETagValue(ResourceInfo resourceInfo, boolean strong) {
  -// FIXME : Compute a strong ETag if requested, using an MD5 digest
  -// of the file contents
  -return resourceInfo.length + "-" + resourceInfo.date;
  -}
  -
  -
  -/**
* Get the ETag associated with a file.
*
* @param resourceInfo File object
* @param strong True if we want a strong ETag, in which case a checksum
* of the file has to be calculated
*/
  -protected String getETag(ResourceInfo resourceInfo, boolean strong) {
  -if (strong)
  -return "\"" + getETagValue(resourceInfo, strong) + "\"";
  -else
  -return "W/\"" + getETagValue(resourceInfo, strong) + "\"";
  +protected String getETag(ResourceInfo resourceInfo) {
  +if (resourceInfo.strongETag != null) {
  +return resourceInfo.strongETag;
  +} else if (resourceInfo.weakETag != null) {
  +return resourceInfo.weakETag;
  +} else {
  +return "W/\"" + resourceInfo.length + "-" 
  ++ resourceInfo.date + "\"";
  +}
   }
   
   
  @@ -1199,7 +1189,7 @@
   ranges = parseRange(request, response, resourceInfo);
   
   // ETag header
  -response.setHeader("ETag", getETag(resourceInfo, true));
  +response.setHeader("ETag", getETag(resourceInfo));
   
   // Last-Modified header
   if (debug > 0)
  @@ -1416,7 +1406,7 @@
   String headerValue = request.getHeader("If-Range");
   if (headerValue != null) {
   
  -String eTag = getETag(resourceInfo, true);
  +String eTag = getETag(resourceInfo);
   long lastModified = resourceInfo.date;
   
   Date date = null;
  @@ -2269,6 +2259,8 @@
   public long date;
   public long length;
   public boolean collection;
  +public String weakETag;
  +public String strongETag;
   public boolean exists;
   public DirContext resources;
   protected InputStream is;
  @@ -2285,6 +2277,8 @@
   date = 0;
   length = -1;
   collection = true;
  +weakETag = null;
  +strongETag = null;
   exists = false;
   resources = null;
   is = null;
  @@ -2329,6 +2323,8 @@
   } else {
   httpDate = FastHttpDateFormat.getCurrentDate();
   }
  +weakETag = tempAttrs.getETag();
  +strongETag = tempAttrs.getETag(true);
   length = t

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-01-08 Thread remm

remm02/01/08 04:14:57

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - WARNING: Potential security problems, allowing access to WEB-INF, can
be created by this patch, although my limited testing did not reveal any problems.
  - Fixes 5724: allow redirection to resources inside /WEB-INF, which could
be used to set error pages.
  - I am not in favor of porting the fix to the 4.0.x branch without extensive review
because of the possible security issues.
  
  Revision  ChangesPath
  1.50  +4 -26 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- DefaultServlet.java   3 Jan 2002 08:52:56 -   1.49
  +++ DefaultServlet.java   8 Jan 2002 12:14:57 -   1.50
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.49 2002/01/03 08:52:56 remm Exp $
  - * $Revision: 1.49 $
  - * $Date: 2002/01/03 08:52:56 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.50 2002/01/08 12:14:57 remm Exp $
  + * $Revision: 1.50 $
  + * $Date: 2002/01/08 12:14:57 $
*
* 
*
  @@ -125,7 +125,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.49 $ $Date: 2002/01/03 08:52:56 $
  + * @version $Revision: 1.50 $ $Date: 2002/01/08 12:14:57 $
*/
   
   public class DefaultServlet
  @@ -584,12 +584,6 @@
   
   String path = getRelativePath(req);
   
  -if ((path.toUpperCase().startsWith("/WEB-INF")) ||
  -(path.toUpperCase().startsWith("/META-INF"))) {
  -resp.sendError(HttpServletResponse.SC_FORBIDDEN);
  -return;
  -}
  -
   // Retrieve the resources
   DirContext resources = getResources();
   
  @@ -740,12 +734,6 @@
   
   String path = getRelativePath(req);
   
  -if ((path.toUpperCase().startsWith("/WEB-INF")) ||
  -(path.toUpperCase().startsWith("/META-INF"))) {
  -resp.sendError(HttpServletResponse.SC_FORBIDDEN);
  -return;
  -}
  -
   // Retrieve the Catalina context
   // Retrieve the resources
   DirContext resources = getResources();
  @@ -1130,16 +1118,6 @@
   else
   log("DefaultServlet.serveResource:  Serving resource '" +
   path + "' headers only");
  -}
  -
  -// Exclude any resource in the /WEB-INF and /META-INF subdirectories
  -// (the "toUpperCase()" avoids problems on Windows systems)
  -if ((path == null) ||
  -path.toUpperCase().startsWith("/WEB-INF") ||
  -path.toUpperCase().startsWith("/META-INF")) {
  -response.sendError(HttpServletResponse.SC_NOT_FOUND, 
  -   request.getRequestURI());
  -return;
   }
   
   // Retrieve the Catalina context and Resources implementation
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-01-02 Thread remm

remm02/01/02 12:37:32

  Modified:catalina/src/share/org/apache/catalina/servlets Tag:
tomcat_40_branch DefaultServlet.java
  Log:
  - Port fix for bugs 5617 and 5618.
  - Fix incorrect content length (off by one byte) when a partial content
is returned.
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.39.2.4  +15 -6 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.39.2.3
  retrieving revision 1.39.2.4
  diff -u -r1.39.2.3 -r1.39.2.4
  --- DefaultServlet.java   20 Dec 2001 12:25:07 -  1.39.2.3
  +++ DefaultServlet.java   2 Jan 2002 20:37:32 -   1.39.2.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.39.2.3 2001/12/20 12:25:07 remm Exp $
  - * $Revision: 1.39.2.3 $
  - * $Date: 2001/12/20 12:25:07 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.39.2.4 2002/01/02 20:37:32 remm Exp $
  + * $Revision: 1.39.2.4 $
  + * $Date: 2002/01/02 20:37:32 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.39.2.3 $ $Date: 2001/12/20 12:25:07 $
  + * @version $Revision: 1.39.2.4 $ $Date: 2002/01/02 20:37:32 $
*/
   
   public class DefaultServlet
  @@ -1216,7 +1216,7 @@
  + range.start
  + "-" + range.end + "/"
  + range.length);
  -response.setContentLength((int) (range.end - range.start));
  +response.setContentLength((int) (range.end - range.start + 1));
   
   if (contentType != null) {
   if (debug > 0)
  @@ -1327,6 +1327,7 @@
   // bytes is the only range unit supported (and I don't see the point
   // of adding new ones).
   if (!rangeHeader.startsWith("bytes")) {
  +response.addHeader("Content-Range", "bytes */" + fileLength);
   response.sendError
   (HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
   return null;
  @@ -1349,6 +1350,7 @@
   int dashPos = rangeDefinition.indexOf('-');
   
   if (dashPos == -1) {
  +response.addHeader("Content-Range", "bytes */" + fileLength);
   response.sendError
   (HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
   return null;
  @@ -1361,6 +1363,8 @@
   currentRange.start = fileLength + offset;
   currentRange.end = fileLength - 1;
   } catch (NumberFormatException e) {
  +response.addHeader
  +("Content-Range", "bytes */" + fileLength);
   response.sendError
   (HttpServletResponse
.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
  @@ -1379,6 +1383,8 @@
   else
   currentRange.end = fileLength - 1;
   } catch (NumberFormatException e) {
  +response.addHeader
  +("Content-Range", "bytes */" + fileLength);
   response.sendError
   (HttpServletResponse
.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
  @@ -1388,6 +1394,7 @@
   }
   
   if (!currentRange.validate()) {
  +response.addHeader("Content-Range", "bytes */" + fileLength);
   response.sendError
   (HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
   return null;
  @@ -2089,8 +2096,10 @@
* Validate range.
*/
   public boolean validate() {
  +if (end >= length)
  +end = length - 1;
   return ( (start >= 0) && (end >= 0) && (length > 0)
  - && (start <= end) && (end < length) );
  + && (start <= end) );
   }
   
   public void recycle() {
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2002-01-01 Thread remm

remm02/01/01 13:30:48

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Fix bugs 5617 and 5618.
  - Fix incorrect content length (off by one byte) when a partial content
is returned.
  
  Revision  ChangesPath
  1.48  +16 -7 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.47
  retrieving revision 1.48
  diff -u -r1.47 -r1.48
  --- DefaultServlet.java   21 Dec 2001 21:15:45 -  1.47
  +++ DefaultServlet.java   1 Jan 2002 21:30:48 -   1.48
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.47 2001/12/21 21:15:45 craigmcc Exp $
  - * $Revision: 1.47 $
  - * $Date: 2001/12/21 21:15:45 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.48 2002/01/01 21:30:48 remm Exp $
  + * $Revision: 1.48 $
  + * $Date: 2002/01/01 21:30:48 $
*
* 
*
  @@ -125,7 +125,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.47 $ $Date: 2001/12/21 21:15:45 $
  + * @version $Revision: 1.48 $ $Date: 2002/01/01 21:30:48 $
*/
   
   public class DefaultServlet
  @@ -1312,7 +1312,7 @@
  + range.start
  + "-" + range.end + "/"
  + range.length);
  -response.setContentLength((int) (range.end - range.start));
  +response.setContentLength((int) (range.end - range.start + 1));
   
   if (contentType != null) {
   if (debug > 0)
  @@ -1484,6 +1484,7 @@
   // bytes is the only range unit supported (and I don't see the point
   // of adding new ones).
   if (!rangeHeader.startsWith("bytes")) {
  +response.addHeader("Content-Range", "bytes */" + fileLength);
   response.sendError
   (HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
   return null;
  @@ -1506,6 +1507,7 @@
   int dashPos = rangeDefinition.indexOf('-');
   
   if (dashPos == -1) {
  +response.addHeader("Content-Range", "bytes */" + fileLength);
   response.sendError
   (HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
   return null;
  @@ -1518,6 +1520,8 @@
   currentRange.start = fileLength + offset;
   currentRange.end = fileLength - 1;
   } catch (NumberFormatException e) {
  +response.addHeader("Content-Range", 
  +   "bytes */" + fileLength);
   response.sendError
   (HttpServletResponse
.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
  @@ -1536,6 +1540,8 @@
   else
   currentRange.end = fileLength - 1;
   } catch (NumberFormatException e) {
  +response.addHeader("Content-Range", 
  +   "bytes */" + fileLength);
   response.sendError
   (HttpServletResponse
.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
  @@ -1545,6 +1551,7 @@
   }
   
   if (!currentRange.validate()) {
  +response.addHeader("Content-Range", "bytes */" + fileLength);
   response.sendError
   (HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
   return null;
  @@ -2243,8 +2250,10 @@
* Validate range.
*/
   public boolean validate() {
  -return ( (start >= 0) && (end >= 0) && (start <= end) 
  - && (length > 0) && (end < length) );
  +if (end >= length)
  +end = length - 1;
  +return ( (start >= 0) && (end >= 0) && (start <= end)
  + && (length > 0) );
   }
   
   public void recycle() {
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-12-20 Thread remm

remm01/12/20 04:25:07

  Modified:catalina/src/share/org/apache/catalina/servlets Tag:
tomcat_40_branch DefaultServlet.java
  Log:
  - Fix bug 5497.
If headers will now be ignored when the default servlet is included.
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.39.2.3  +8 -5  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.39.2.2
  retrieving revision 1.39.2.3
  diff -u -r1.39.2.2 -r1.39.2.3
  --- DefaultServlet.java   2001/10/05 17:09:28 1.39.2.2
  +++ DefaultServlet.java   2001/12/20 12:25:07 1.39.2.3
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.39.2.2 2001/10/05 17:09:28 remm Exp $
  - * $Revision: 1.39.2.2 $
  - * $Date: 2001/10/05 17:09:28 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.39.2.3 2001/12/20 12:25:07 remm Exp $
  + * $Revision: 1.39.2.3 $
  + * $Date: 2001/12/20 12:25:07 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.39.2.2 $ $Date: 2001/10/05 17:09:28 $
  + * @version $Revision: 1.39.2.3 $ $Date: 2001/12/20 12:25:07 $
*/
   
   public class DefaultServlet
  @@ -1092,7 +1092,10 @@
   } else {
   
   // Checking If headers
  -if ( !checkIfHeaders(request, response, resourceInfo) ) {
  +boolean included =
  +(request.getAttribute(Globals.REQUEST_URI_ATTR) != null);
  +if (!included 
  +&& !checkIfHeaders(request, response, resourceInfo)) {
   return;
   }
   
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-12-20 Thread remm

remm01/12/20 04:18:57

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Fix bug 5497.
If headers will now be ignored when the default servlet is included.
  
  Revision  ChangesPath
  1.46  +14 -8 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- DefaultServlet.java   2001/11/28 21:10:45 1.45
  +++ DefaultServlet.java   2001/12/20 12:18:56 1.46
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.45 2001/11/28 21:10:45 remm Exp $
  - * $Revision: 1.45 $
  - * $Date: 2001/11/28 21:10:45 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.46 2001/12/20 12:18:56 remm Exp $
  + * $Revision: 1.46 $
  + * $Date: 2001/12/20 12:18:56 $
*
* 
*
  @@ -124,7 +124,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.45 $ $Date: 2001/11/28 21:10:45 $
  + * @version $Revision: 1.46 $ $Date: 2001/12/20 12:18:56 $
*/
   
   public class DefaultServlet
  @@ -1136,7 +1136,8 @@
   if ((path == null) ||
   path.toUpperCase().startsWith("/WEB-INF") ||
   path.toUpperCase().startsWith("/META-INF")) {
  -response.sendError(HttpServletResponse.SC_NOT_FOUND, 
request.getRequestURI());
  +response.sendError(HttpServletResponse.SC_NOT_FOUND, 
  +   request.getRequestURI());
   return;
   }
   
  @@ -1145,7 +1146,8 @@
   ResourceInfo resourceInfo = new ResourceInfo(path, resources);
   
   if (!resourceInfo.exists) {
  -response.sendError(HttpServletResponse.SC_NOT_FOUND, 
request.getRequestURI());
  +response.sendError(HttpServletResponse.SC_NOT_FOUND, 
  +   request.getRequestURI());
   return;
   }
   
  @@ -1153,7 +1155,8 @@
   // ends with "/" or "\", return NOT FOUND
   if (!resourceInfo.collection) {
   if (path.endsWith("/") || (path.endsWith("\\"))) {
  -response.sendError(HttpServletResponse.SC_NOT_FOUND, 
request.getRequestURI());
  +response.sendError(HttpServletResponse.SC_NOT_FOUND, 
  +   request.getRequestURI());
   return;
   }
   }
  @@ -1184,7 +1187,10 @@
   } else {
   
   // Checking If headers
  -if ( !checkIfHeaders(request, response, resourceInfo) ) {
  +boolean included =
  +(request.getAttribute(Globals.REQUEST_URI_ATTR) != null);
  +if (!included 
  +&& !checkIfHeaders(request, response, resourceInfo)) {
   return;
   }
   
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-11-28 Thread remm

remm01/11/28 13:10:45

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Add support for upload resuming, which can be useful when uploading
large files over the internet.
  - Based on a patch submitted to the Slide project by Mike Gartrell 
  
  Revision  ChangesPath
  1.45  +165 -13   
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- DefaultServlet.java   2001/11/16 22:53:01 1.44
  +++ DefaultServlet.java   2001/11/28 21:10:45 1.45
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.44 2001/11/16 22:53:01 patrickl Exp $
  - * $Revision: 1.44 $
  - * $Date: 2001/11/16 22:53:01 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.45 2001/11/28 21:10:45 remm Exp $
  + * $Revision: 1.45 $
  + * $Date: 2001/11/28 21:10:45 $
*
* 
*
  @@ -73,6 +73,7 @@
   import java.io.InputStream;
   import java.io.IOException;
   import java.io.PrintWriter;
  +import java.io.RandomAccessFile;
   import java.io.Reader;
   import java.io.InputStreamReader;
   import java.io.Writer;
  @@ -123,7 +124,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.44 $ $Date: 2001/11/16 22:53:01 $
  + * @version $Revision: 1.45 $ $Date: 2001/11/28 21:10:45 $
*/
   
   public class DefaultServlet
  @@ -234,6 +235,12 @@
'A', 'B', 'C', 'D', 'E', 'F'};
   
   
  +/**
  + * Size of file transfer buffer in bytes.
  + */
  +private static final int BUFFER_SIZE = 4096;
  +
  +
   // - Static Initializer
   
   
  @@ -582,12 +589,6 @@
   return;
   }
   
  -// Looking for a Content-Range header
  -if (req.getHeader("Content-Range") != null) {
  -// No content range header is supported
  -resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED);
  -}
  -
   // Retrieve the resources
   DirContext resources = getResources();
   
  @@ -604,8 +605,31 @@
   }
   
   boolean result = true;
  +
  +// Temp. content file used to support partial PUT
  +File contentFile = null;
  +
  +// Input stream for temp. content file used to support partial PUT
  +FileInputStream contentFileInStream = null;
  +
  +ResourceInfo resourceInfo = new ResourceInfo(path, resources);
  +Range range = parseContentRange(req, resp);
  +
  +InputStream resourceInputStream = null;
  +
  +// Append data specified in ranges to existing content for this
  +// resource - create a temp. file on the local filesystem to
  +// perform this operation
  +// Assume just one range is specified for now
  +if (range != null) {
  +contentFile = executePartialPut(req, range, path);
  +resourceInputStream = new FileInputStream(contentFile);
  +} else {
  +resourceInputStream = req.getInputStream();
  +}
  +
   try {
  -Resource newResource = new Resource(req.getInputStream());
  +Resource newResource = new Resource(resourceInputStream);
   // FIXME: Add attributes
   if (exists) {
   resources.rebind(path, newResource);
  @@ -630,6 +654,73 @@
   
   
   /**
  + * Handle a partial PUT.  New content specified in request is appended to 
  + * existing content in oldRevisionContent (if present). This code does 
  + * not support simultaneous partial updates to the same resource.
  + */
  +protected File executePartialPut(HttpServletRequest req, Range range, 
  + String path) 
  +throws IOException {
  +
  +// Append data specified in ranges to existing content for this
  +// resource - create a temp. file on the local filesystem to
  +// perform this operation
  +File tempDir = (File) getServletContext().getAttribute
  +("javax.servlet.context.tempdir");
  +// Convert all '/' characters to '.' in resourcePath
  +String convertedResourcePath = path.replace('/', '.');
  +File contentFile = new File(tempDir, convertedResourcePath);
  +if (contentFile.createNewFile()) {
  +// Clean up contentFile when Tomcat is terminated
  +contentFile

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-11-16 Thread patrickl

patrickl01/11/16 14:53:01

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  Use the request's URI in error pages instead of just the path with the current 
context. This behavior was in Tomcat 4.0.1 but was lost recently. This change only 
restores the old error messages.
  
  Revision  ChangesPath
  1.44  +8 -8  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- DefaultServlet.java   2001/11/16 09:46:53 1.43
  +++ DefaultServlet.java   2001/11/16 22:53:01 1.44
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.43 2001/11/16 09:46:53 remm Exp $
  - * $Revision: 1.43 $
  - * $Date: 2001/11/16 09:46:53 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.44 2001/11/16 22:53:01 patrickl Exp $
  + * $Revision: 1.44 $
  + * $Date: 2001/11/16 22:53:01 $
*
* 
*
  @@ -123,7 +123,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.43 $ $Date: 2001/11/16 09:46:53 $
  + * @version $Revision: 1.44 $ $Date: 2001/11/16 22:53:01 $
*/
   
   public class DefaultServlet
  @@ -1045,7 +1045,7 @@
   if ((path == null) ||
   path.toUpperCase().startsWith("/WEB-INF") ||
   path.toUpperCase().startsWith("/META-INF")) {
  -response.sendError(HttpServletResponse.SC_NOT_FOUND, path);
  +response.sendError(HttpServletResponse.SC_NOT_FOUND, 
request.getRequestURI());
   return;
   }
   
  @@ -1054,7 +1054,7 @@
   ResourceInfo resourceInfo = new ResourceInfo(path, resources);
   
   if (!resourceInfo.exists) {
  -response.sendError(HttpServletResponse.SC_NOT_FOUND, path);
  +response.sendError(HttpServletResponse.SC_NOT_FOUND, 
request.getRequestURI());
   return;
   }
   
  @@ -1062,7 +1062,7 @@
   // ends with "/" or "\", return NOT FOUND
   if (!resourceInfo.collection) {
   if (path.endsWith("/") || (path.endsWith("\\"))) {
  -response.sendError(HttpServletResponse.SC_NOT_FOUND, path);
  +response.sendError(HttpServletResponse.SC_NOT_FOUND, 
request.getRequestURI());
   return;
   }
   }
  @@ -,7 +,7 @@
   // suppress them
   if (!listings) {
   response.sendError(HttpServletResponse.SC_NOT_FOUND,
  -   resourceInfo.path);
  +   request.getRequestURI());
   return;
   }
   contentType = "text/html;charset=UTF-8";
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-11-16 Thread remm

remm01/11/16 01:46:53

  Modified:catalina/src/share/org/apache/catalina/connector/http
HttpProcessor.java
   catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Use FHDF instead of SimpleDateFormat.format.
  
  Revision  ChangesPath
  1.40  +8 -7  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java
  
  Index: HttpProcessor.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- HttpProcessor.java2001/11/09 19:38:43 1.39
  +++ HttpProcessor.java2001/11/16 09:46:53 1.40
  @@ -1,6 +1,6 @@
  -/* * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v
 1.39 2001/11/09 19:38:43 remm Exp $
  - * $Revision: 1.39 $
  - * $Date: 2001/11/09 19:38:43 $
  +/* * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v
 1.40 2001/11/16 09:46:53 remm Exp $
  + * $Revision: 1.40 $
  + * $Date: 2001/11/16 09:46:53 $
*
* 
*
  @@ -91,8 +91,9 @@
   import org.apache.catalina.LifecycleException;
   import org.apache.catalina.LifecycleListener;
   import org.apache.catalina.Logger;
  -import org.apache.catalina.util.RequestUtil;
  +import org.apache.catalina.util.FastHttpDateFormat;
   import org.apache.catalina.util.LifecycleSupport;
  +import org.apache.catalina.util.RequestUtil;
   import org.apache.catalina.util.StringManager;
   import org.apache.catalina.util.StringParser;
   
  @@ -106,7 +107,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.39 $ $Date: 2001/11/09 19:38:43 $
  + * @version $Revision: 1.40 $ $Date: 2001/11/16 09:46:53 $
*/
   
   final class HttpProcessor
  @@ -1006,8 +1007,8 @@
   
   // Ask our Container to process this request
   try {
  -((HttpServletResponse) response).addDateHeader
  -("Date", System.currentTimeMillis());
  +((HttpServletResponse) response).setHeader
  +("Date", FastHttpDateFormat.getCurrentDate());
   if (ok) {
   connector.getContainer().invoke(request, response);
   }
  
  
  
  1.43  +10 -22
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- DefaultServlet.java   2001/10/15 01:11:59 1.42
  +++ DefaultServlet.java   2001/11/16 09:46:53 1.43
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.42 2001/10/15 01:11:59 remm Exp $
  - * $Revision: 1.42 $
  - * $Date: 2001/10/15 01:11:59 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.43 2001/11/16 09:46:53 remm Exp $
  + * $Revision: 1.43 $
  + * $Date: 2001/11/16 09:46:53 $
*
* 
*
  @@ -111,9 +111,10 @@
   import org.apache.naming.resources.Resource;
   import org.apache.naming.resources.ResourceAttributes;
   import org.apache.catalina.Globals;
  +import org.apache.catalina.util.FastHttpDateFormat;
   import org.apache.catalina.util.MD5Encoder;
  -import org.apache.catalina.util.StringManager;
   import org.apache.catalina.util.RequestUtil;
  +import org.apache.catalina.util.StringManager;
   
   
   /**
  @@ -122,7 +123,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.42 $ $Date: 2001/10/15 01:11:59 $
  + * @version $Revision: 1.43 $ $Date: 2001/11/16 09:46:53 $
*/
   
   public class DefaultServlet
  @@ -1128,7 +1129,7 @@
   if (debug > 0)
   log("DefaultServlet.serveFile:  lastModified='" +
   (new Timestamp(resourceInfo.date)).toString() + "'");
  -response.setDateHeader("Last-Modified", resourceInfo.date);
  +response.setHeader("Last-Modified", resourceInfo.httpDate);
   
   }
   
  @@ -1568,7 +1569,7 @@
   sb.append("\r\n");
   
   sb.append("");
  -sb.append(renderLastModified(childResourceInfo.date));
  +sb.append(childResourceInfo.httpDate);
  

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-10-05 Thread remm

remm01/10/05 10:09:28

  Modified:catalina/src/share/org/apache/catalina/servlets Tag:
tomcat_40_branch DefaultServlet.java
  Log:
  - Don't set last-modified when displaying a directory browsing page.
  - Don't check if headers when resource is a collection.
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.39.2.2  +21 -18
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.39.2.1
  retrieving revision 1.39.2.2
  diff -u -r1.39.2.1 -r1.39.2.2
  --- DefaultServlet.java   2001/10/04 19:28:56 1.39.2.1
  +++ DefaultServlet.java   2001/10/05 17:09:28 1.39.2.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.39.2.1 2001/10/04 19:28:56 remm Exp $
  - * $Revision: 1.39.2.1 $
  - * $Date: 2001/10/04 19:28:56 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.39.2.2 2001/10/05 17:09:28 remm Exp $
  + * $Revision: 1.39.2.2 $
  + * $Date: 2001/10/05 17:09:28 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.39.2.1 $ $Date: 2001/10/04 19:28:56 $
  + * @version $Revision: 1.39.2.2 $ $Date: 2001/10/05 17:09:28 $
*/
   
   public class DefaultServlet
  @@ -1089,18 +1089,23 @@
   return;
   }
   
  -}
  +} else {
   
  -// Checking If headers
  -if ( !checkIfHeaders(request, response, resourceInfo) ) {
  -return;
  +// Checking If headers
  +if ( !checkIfHeaders(request, response, resourceInfo) ) {
  +return;
  +}
  +
   }
   
   // Find content type.
   String contentType =
   getServletContext().getMimeType(resourceInfo.path);
   
  +Vector ranges = null;
  +
   if (resourceInfo.collection) {
  +
   // Skip directory listings if we have been configured to
   // suppress them
   if (!listings) {
  @@ -1109,25 +1114,23 @@
   return;
   }
   contentType = "text/html;charset=UTF-8";
  -}
   
  +} else {
   
  -// Parse range specifier
  -Vector ranges = null;
  -if (!resourceInfo.collection) {
  +// Parse range specifier
   
   ranges = parseRange(request, response, resourceInfo);
   
   // ETag header
   response.setHeader("ETag", getETag(resourceInfo, true));
   
  -}
  +// Last-Modified header
  +if (debug > 0)
  +log("DefaultServlet.serveFile:  lastModified='" +
  +(new Timestamp(resourceInfo.date)).toString() + "'");
  +response.setDateHeader("Last-Modified", resourceInfo.date);
   
  -// Last-Modified header
  -if (debug > 0)
  -log("DefaultServlet.serveFile:  lastModified='" +
  -(new Timestamp(resourceInfo.date)).toString() + "'");
  -response.setDateHeader("Last-Modified", resourceInfo.date);
  +}
   
   ServletOutputStream ostream = null;
   PrintWriter writer = null;
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-10-04 Thread remm

remm01/10/04 12:28:57

  Modified:catalina/src/share/org/apache/catalina/servlets Tag:
tomcat_40_branch DefaultServlet.java
  Log:
  - Merge a variety of fixes and small feature additions which have been made
and debugged in the HEAD branch, including:
- Removal of Jasper loader (merged with the shared loader).
- Fixes a lot of spec complaince issue regarding the commit state of the
  response when using forwards, sendError or sendRedirect.
- Fixes cache consistency issues for static resource serving.
- Adds content caching for static resources (that's linked to the bugfix
  mentioned just above).
- Merge enhanced error reporting and error page dispatching (which will be
  able to display error pages for most errors returned from the pipeline -
  like the 401 and 403 returned by the authenticator).
- Merge the fixes for all the other more recent bugfixes that have been
  fixed in the HEAD branch.
- Passes all tester and Watchdog tests.
- Merge a variety of small enhancements to the build scripts which have been
  made in the HEAD branch.
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.39.2.1  +5 -5  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.39
  retrieving revision 1.39.2.1
  diff -u -r1.39 -r1.39.2.1
  --- DefaultServlet.java   2001/09/12 16:19:25 1.39
  +++ DefaultServlet.java   2001/10/04 19:28:56 1.39.2.1
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.39 2001/09/12 16:19:25 remm Exp $
  - * $Revision: 1.39 $
  - * $Date: 2001/09/12 16:19:25 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.39.2.1 2001/10/04 19:28:56 remm Exp $
  + * $Revision: 1.39.2.1 $
  + * $Date: 2001/10/04 19:28:56 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.39 $ $Date: 2001/09/12 16:19:25 $
  + * @version $Revision: 1.39.2.1 $ $Date: 2001/10/04 19:28:56 $
*/
   
   public class DefaultServlet
  @@ -2175,7 +2175,7 @@
   Date tempDate = tempAttrs.getCreationDate();
   if (tempDate != null)
   creationDate = tempDate.getTime();
  -tempDate = tempAttrs.getLastModified();
  +tempDate = tempAttrs.getLastModifiedDate();
   if (tempDate != null) {
   date = tempDate.getTime();
   httpDate = formats[0].format(tempDate);
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-09-12 Thread remm

remm01/09/12 09:19:25

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Must use rebind when ovewriting,
Bug reported by Holger Menzel 
  
  Revision  ChangesPath
  1.39  +9 -5  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- DefaultServlet.java   2001/08/27 11:50:41 1.38
  +++ DefaultServlet.java   2001/09/12 16:19:25 1.39
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.38 2001/08/27 11:50:41 remm Exp $
  - * $Revision: 1.38 $
  - * $Date: 2001/08/27 11:50:41 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.39 2001/09/12 16:19:25 remm Exp $
  + * $Revision: 1.39 $
  + * $Date: 2001/09/12 16:19:25 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.38 $ $Date: 2001/08/27 11:50:41 $
  + * @version $Revision: 1.39 $ $Date: 2001/09/12 16:19:25 $
*/
   
   public class DefaultServlet
  @@ -606,7 +606,11 @@
   try {
   Resource newResource = new Resource(req.getInputStream());
   // FIXME: Add attributes
  -resources.bind(path, newResource);
  +if (exists) {
  +resources.rebind(path, newResource);
  +} else {
  +resources.bind(path, newResource);
  +}
   } catch(NamingException e) {
   result = false;
   }
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-08-27 Thread remm

remm01/08/27 04:50:41

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - A 206 returned an incorrect content length, instead of the actual number of bytes
returned.
Fix for bug 3274.
  
  Revision  ChangesPath
  1.38  +5 -5  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- DefaultServlet.java   2001/07/22 20:25:11 1.37
  +++ DefaultServlet.java   2001/08/27 11:50:41 1.38
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.37 2001/07/22 20:25:11 pier Exp $
  - * $Revision: 1.37 $
  - * $Date: 2001/07/22 20:25:11 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.38 2001/08/27 11:50:41 remm Exp $
  + * $Revision: 1.38 $
  + * $Date: 2001/08/27 11:50:41 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.37 $ $Date: 2001/07/22 20:25:11 $
  + * @version $Revision: 1.38 $ $Date: 2001/08/27 11:50:41 $
*/
   
   public class DefaultServlet
  @@ -1206,7 +1206,7 @@
  + range.start
  + "-" + range.end + "/"
  + range.length);
  -response.setContentLength((int) range.length);
  +response.setContentLength((int) (range.end - range.start));
   
   if (contentType != null) {
   if (debug > 0)
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java WebdavServlet.java

2001-04-05 Thread remm

remm01/04/05 19:45:48

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java WebdavServlet.java
  Log:
  - Add addiotional check to prevent using DELETE and PUT on URLs
starting with /WEB-INF and /META-INF.
  
  Revision  ChangesPath
  1.35  +16 -4 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- DefaultServlet.java   2001/04/05 18:47:50 1.34
  +++ DefaultServlet.java   2001/04/06 02:45:48 1.35
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.34 2001/04/05 18:47:50 remm Exp $
  - * $Revision: 1.34 $
  - * $Date: 2001/04/05 18:47:50 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.35 2001/04/06 02:45:48 remm Exp $
  + * $Revision: 1.35 $
  + * $Date: 2001/04/06 02:45:48 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.34 $ $Date: 2001/04/05 18:47:50 $
  + * @version $Revision: 1.35 $ $Date: 2001/04/06 02:45:48 $
*/
   
   public class DefaultServlet
  @@ -575,6 +575,12 @@
   
   String path = getRelativePath(req);
   
  +if ((path.toUpperCase().startsWith("/WEB-INF")) ||
  +(path.toUpperCase().startsWith("/META-INF"))) {
  +resp.sendError(HttpServletResponse.SC_FORBIDDEN);
  +return;
  +}
  +
   // Looking for a Content-Range header
   if (req.getHeader("Content-Range") != null) {
   // No content range header is supported
  @@ -636,6 +642,12 @@
   }
   
   String path = getRelativePath(req);
  +
  +if ((path.toUpperCase().startsWith("/WEB-INF")) ||
  +(path.toUpperCase().startsWith("/META-INF"))) {
  +resp.sendError(HttpServletResponse.SC_FORBIDDEN);
  +return;
  +}
   
   // Retrieve the Catalina context
   // Retrieve the resources
  
  
  
  1.17  +10 -4 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- WebdavServlet.java2001/04/05 19:03:08 1.16
  +++ WebdavServlet.java2001/04/06 02:45:48 1.17
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
 1.16 2001/04/05 19:03:08 remm Exp $
  - * $Revision: 1.16 $
  - * $Date: 2001/04/05 19:03:08 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
 1.17 2001/04/06 02:45:48 remm Exp $
  + * $Revision: 1.17 $
  + * $Date: 2001/04/06 02:45:48 $
*
* 
*
  @@ -125,7 +125,7 @@
* are handled by the DefaultServlet.
*
* @author Remy Maucherat
  - * @version $Revision: 1.16 $ $Date: 2001/04/05 19:03:08 $
  + * @version $Revision: 1.17 $ $Date: 2001/04/06 02:45:48 $
*/
   
   public class WebdavServlet
  @@ -1685,6 +1685,12 @@
   private boolean deleteResource(String path, HttpServletRequest req, 
  HttpServletResponse resp)
   throws ServletException, IOException {
  +
  +if ((path.toUpperCase().startsWith("/WEB-INF")) ||
  +(path.toUpperCase().startsWith("/META-INF"))) {
  +resp.sendError(WebdavStatus.SC_FORBIDDEN);
  +return false;
  +}
   
   String ifHeader = req.getHeader("If");
   if (ifHeader == null)
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-04-05 Thread remm

remm01/04/05 11:47:52

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Path /. wasn't normalized properly (but /./ was). It's treated as a special case.
  
  Revision  ChangesPath
  1.34  +7 -4  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- DefaultServlet.java   2001/04/02 21:14:19 1.33
  +++ DefaultServlet.java   2001/04/05 18:47:50 1.34
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.33 2001/04/02 21:14:19 craigmcc Exp $
  - * $Revision: 1.33 $
  - * $Date: 2001/04/02 21:14:19 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.34 2001/04/05 18:47:50 remm Exp $
  + * $Revision: 1.34 $
  + * $Date: 2001/04/05 18:47:50 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.33 $ $Date: 2001/04/02 21:14:19 $
  + * @version $Revision: 1.34 $ $Date: 2001/04/05 18:47:50 $
*/
   
   public class DefaultServlet
  @@ -877,6 +877,9 @@
   
   if (normalized == null)
   return (null);
  +
  +if (normalized.equals("/."))
  +return "/";
   
// Normalize the slashes and add leading slash if necessary
if (normalized.indexOf('\\') >= 0)
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-04-02 Thread remm

remm01/04/02 01:41:48

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Fixes security problem reported by Jon and an anonymous hacker.
Now http://127.0.0.1:8080/examples/jsp/dates/date%252ejsp returns 404,
while http://127.0.0.1:8080/examples/jsp/dates/date%2ejsp returns the result of
the execution of the JSP.
Now Craig is going to have a lot of fun building new binaries ;)
  
  Revision  ChangesPath
  1.32  +4 -6  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- DefaultServlet.java   2001/03/23 02:55:44 1.31
  +++ DefaultServlet.java   2001/04/02 08:41:45 1.32
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.31 2001/03/23 02:55:44 remm Exp $
  - * $Revision: 1.31 $
  - * $Date: 2001/03/23 02:55:44 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.32 2001/04/02 08:41:45 remm Exp $
  + * $Revision: 1.32 $
  + * $Date: 2001/04/02 08:41:45 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.31 $ $Date: 2001/03/23 02:55:44 $
  + * @version $Revision: 1.32 $ $Date: 2001/04/02 08:41:45 $
*/
   
   public class DefaultServlet
  @@ -868,8 +868,6 @@
// Placed at the beginning of the chain so that encoded 
// bad stuff(tm) can be caught by the later checks
   String normalized = path;
  -if (normalized.indexOf('%') >= 0)
  -normalized = RequestUtil.URLDecode(normalized, "UTF8");
   if (normalized == null)
   return (null);
   
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-03-22 Thread remm

remm01/03/22 18:55:44

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Now adding the parameters before sending a redirect.
Bug reported by Stefan Schmidt 
  
  Revision  ChangesPath
  1.31  +41 -6 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- DefaultServlet.java   2001/03/18 06:36:13 1.30
  +++ DefaultServlet.java   2001/03/23 02:55:44 1.31
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.30 2001/03/18 06:36:13 remm Exp $
  - * $Revision: 1.30 $
  - * $Date: 2001/03/18 06:36:13 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.31 2001/03/23 02:55:44 remm Exp $
  + * $Revision: 1.31 $
  + * $Date: 2001/03/23 02:55:44 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.30 $ $Date: 2001/03/18 06:36:13 $
  + * @version $Revision: 1.31 $ $Date: 2001/03/23 02:55:44 $
*/
   
   public class DefaultServlet
  @@ -1047,7 +1047,9 @@
   if (resourceInfo.collection) {
   
if (!request.getRequestURI().endsWith("/")) {
  - response.sendRedirect(request.getRequestURI() + "/");
  +String redirectPath = request.getRequestURI() + "/";
  +redirectPath = appendParameters(request, redirectPath);
  + response.sendRedirect(redirectPath);
return;
}
   
  @@ -1058,7 +1060,8 @@
   if ((contextPath != null) && (!contextPath.equals("/"))) {
   redirectPath = contextPath + redirectPath;
   }
  -response.sendRedirect(rewriteUrl(redirectPath));
  +redirectPath = appendParameters(request, redirectPath);
  +response.sendRedirect(redirectPath);
   return;
   }
   
  @@ -1364,6 +1367,38 @@
   }
   
   return result;
  +}
  +
  +
  +/**
  + * Append the request parameters to the redirection string before calling
  + * sendRedirect.
  + */
  +protected String appendParameters(HttpServletRequest request, 
  +  String redirectPath) {
  +
  +StringBuffer result = new StringBuffer(rewriteUrl(redirectPath));
  +
  +Enumeration enum = request.getParameterNames();
  +if (enum.hasMoreElements())
  +result.append("?");
  +
  +while (enum.hasMoreElements()) {
  +String name = (String) enum.nextElement();
  +String[] values = request.getParameterValues(name);
  +for (int i = 0; i < values.length; i++) {
  +result.append(rewriteUrl(name));
  +result.append("=");
  +result.append(rewriteUrl(values[i]));
  +if (i < (values.length - 1))
  +result.append("&");
  +}
  +if (enum.hasMoreElements())
  +result.append("&");
  +}
  +
  +return result.toString();
  +
   }
   
   
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-03-17 Thread remm

remm01/03/17 22:36:14

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Changes most of the methods in DefaultServlet from private to protected,
so that it's easier to extend its functionality.
The patch is big, but there is actually no real changes (since the method are
sorted by access type, I had to move around big chunks of code).
  
  Revision  ChangesPath
  1.30  +904 -903  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- DefaultServlet.java   2001/03/17 05:24:28 1.29
  +++ DefaultServlet.java   2001/03/18 06:36:13 1.30
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.29 2001/03/17 05:24:28 remm Exp $
  - * $Revision: 1.29 $
  - * $Date: 2001/03/17 05:24:28 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.30 2001/03/18 06:36:13 remm Exp $
  + * $Revision: 1.30 $
  + * $Date: 2001/03/18 06:36:13 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.29 $ $Date: 2001/03/17 05:24:28 $
  + * @version $Revision: 1.30 $ $Date: 2001/03/18 06:36:13 $
*/
   
   public class DefaultServlet
  @@ -973,1040 +973,1041 @@
   }
   
   
  -//  Private Methods
  -
  -
   /**
  - * Copy the contents of the specified input stream to the specified
  - * output stream, and ensure that both streams are closed before returning
  - * (even in the face of an exception).
  - *
  - * @param istream The input stream to read from
  - * @param ostream The output stream to write to
  - *
  - * @exception IOException if an input/output error occurs
  + * Display the size of a file.
*/
  -private void copy(ResourceInfo resourceInfo, ServletOutputStream ostream)
  - throws IOException {
  -
  -IOException exception = null;
  -
  -// FIXME : i18n ?
  -InputStream resourceInputStream = resourceInfo.getStream();
  -InputStream istream = new BufferedInputStream
  -(resourceInputStream, input);
  -
  -// Copy the input stream to the output stream
  -exception = copyRange(istream, ostream);
  +protected void displaySize(StringBuffer buf, int filesize) {
   
  -// Clean up the input stream
  -try {
  -istream.close();
  -} catch (Throwable t) {
  -;
  -}
  + int leftside = filesize / 1024;
  + int rightside = (filesize % 1024) / 103;  // makes 1 digit
  + // To avoid 0.0 for non-zero file, we bump to 0.1
  + if (leftside == 0 && rightside == 0 && filesize != 0) 
  + rightside = 1;
  + buf.append(leftside).append(".").append(rightside);
  + buf.append(" KB");
   
  - // Rethrow any exception that has occurred
  - if (exception != null)
  - throw exception;
  -
   }
  -
  -
  +
  +
   /**
  - * Copy the contents of the specified input stream to the specified
  - * output stream, and ensure that both streams are closed before returning
  - * (even in the face of an exception).
  + * Serve the specified resource, optionally including the data content.
*
  - * @param istream The input stream to read from
  - * @param writer The writer to write to
  + * @param request The servlet request we are processing
  + * @param response The servlet response we are creating
  + * @param content Should the content be included?
*
* @exception IOException if an input/output error occurs
  + * @exception ServletException if a servlet-specified error occurs
*/
  -private void copy(ResourceInfo resourceInfo, PrintWriter writer)
  - throws IOException {
  -
  -IOException exception = null;
  -
  -InputStream resourceInputStream = resourceInfo.getStream();
  -// FIXME : i18n ?
  -Reader reader = new InputStreamReader(resourceInputStream);
  -
  -// Copy the input stream to the output stream
  -exception = copyRange(reader, writer);
  -
  -// Clean up the reader
  -try {
  -reader.close();
  -} catch (Throwable t) {
  -;
  -}
  -
  - // Rethrow any 

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-03-16 Thread remm

remm01/03/16 21:24:29

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Try to retrieve the resources from the servlet context first.
  
  Revision  ChangesPath
  1.29  +18 -13
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- DefaultServlet.java   2001/03/09 05:04:21 1.28
  +++ DefaultServlet.java   2001/03/17 05:24:28 1.29
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.28 2001/03/09 05:04:21 remm Exp $
  - * $Revision: 1.28 $
  - * $Date: 2001/03/09 05:04:21 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.29 2001/03/17 05:24:28 remm Exp $
  + * $Revision: 1.29 $
  + * $Date: 2001/03/17 05:24:28 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.28 $ $Date: 2001/03/09 05:04:21 $
  + * @version $Revision: 1.29 $ $Date: 2001/03/17 05:24:28 $
*/
   
   public class DefaultServlet
  @@ -352,25 +352,30 @@
*/
   protected DirContext getResources() {
   
  -// First : try JNDI
  +DirContext result = null;
  +
  +// Try the servlet context
   try {
  -return 
  -(DirContext) new InitialContext().lookup(RESOURCES_JNDI_NAME);
  -} catch (NamingException e) {
  -// Failed
  +result = (DirContext) getServletContext()
  +.getAttribute(Globals.RESOURCES_ATTR);
   } catch (ClassCastException e) {
   // Failed : Not the right type
   }
   
  -// If it has failed, try the servlet context
  +if (result != null)
  +return result;
  +
  +// Try JNDI
   try {
  -return (DirContext) getServletContext()
  -.getAttribute(Globals.RESOURCES_ATTR);
  +result =
  +(DirContext) new InitialContext().lookup(RESOURCES_JNDI_NAME);
  +} catch (NamingException e) {
  +// Failed
   } catch (ClassCastException e) {
   // Failed : Not the right type
   }
   
  -return null;
  +return result;
   
   }
   
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-03-08 Thread remm

remm01/03/08 21:04:22

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - A POST request on the default servlet should be equivalent to a GET.
  
  Revision  ChangesPath
  1.28  +5 -4  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- DefaultServlet.java   2001/03/08 23:40:55 1.27
  +++ DefaultServlet.java   2001/03/09 05:04:21 1.28
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.27 2001/03/08 23:40:55 remm Exp $
  - * $Revision: 1.27 $
  - * $Date: 2001/03/08 23:40:55 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.28 2001/03/09 05:04:21 remm Exp $
  + * $Revision: 1.28 $
  + * $Date: 2001/03/09 05:04:21 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.27 $ $Date: 2001/03/08 23:40:55 $
  + * @version $Revision: 1.28 $ $Date: 2001/03/09 05:04:21 $
*/
   
   public class DefaultServlet
  @@ -547,6 +547,7 @@
   protected void doPost(HttpServletRequest request,
 HttpServletResponse response)
throws IOException, ServletException {
  +doGet(request, response);
   }
   
   
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-03-08 Thread remm

remm01/03/08 15:40:57

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Set content length when doing a single range ranged request. Fixes
problems with WinAMP 2.72 new HTTP seek feature (which apparently
doesn't support chunking).
  
  Revision  ChangesPath
  1.27  +8 -4  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- DefaultServlet.java   2001/02/03 07:48:33 1.26
  +++ DefaultServlet.java   2001/03/08 23:40:55 1.27
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.26 2001/02/03 07:48:33 remm Exp $
  - * $Revision: 1.26 $
  - * $Date: 2001/02/03 07:48:33 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.27 2001/03/08 23:40:55 remm Exp $
  + * $Revision: 1.27 $
  + * $Date: 2001/03/08 23:40:55 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.26 $ $Date: 2001/02/03 07:48:33 $
  + * @version $Revision: 1.27 $ $Date: 2001/03/08 23:40:55 $
*/
   
   public class DefaultServlet
  @@ -1301,6 +1301,9 @@
 ServletOutputStream ostream,
 long start, long end) {
   
  +if (debug > 10)
  +System.out.println("Serving bytes:" + start + "-" + end);
  +
   try {
   istream.skip(start);
   } catch (IOException e) {
  @@ -1632,6 +1635,7 @@
  + range.start
  + "-" + range.end + "/" 
  + range.length);
  +response.setContentLength((int) range.length);
   
   if (contentType != null) {
   if (debug > 0)
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-02-02 Thread remm

remm01/02/02 23:48:33

  Modified:catalina/src/share/org/apache/catalina/connector
HttpResponseBase.java
   catalina/src/share/org/apache/catalina/connector/http
HttpResponseImpl.java
   catalina/src/share/org/apache/catalina/core
StandardWrapperValve.java
   catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Will now return a status report for every status except 304 (and 200).
  - Now try to emulate Apache 1.3.x behavior as closely as possible.
  - Don't add a Content-Length: 0 when status is 304.
  - The directory browsing pages will now return links to other directories with
a trailing "/" to minimize the number of redirections needed.
  
  Revision  ChangesPath
  1.26  +6 -6  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseBase.java
  
  Index: HttpResponseBase.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseBase.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- HttpResponseBase.java 2001/01/26 21:33:12 1.25
  +++ HttpResponseBase.java 2001/02/03 07:48:31 1.26
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseBase.java,v
 1.25 2001/01/26 21:33:12 craigmcc Exp $
  - * $Revision: 1.25 $
  - * $Date: 2001/01/26 21:33:12 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseBase.java,v
 1.26 2001/02/03 07:48:31 remm Exp $
  + * $Revision: 1.26 $
  + * $Date: 2001/02/03 07:48:31 $
*
* 
*
  @@ -97,7 +97,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.25 $ $Date: 2001/01/26 21:33:12 $
  + * @version $Revision: 1.26 $ $Date: 2001/02/03 07:48:31 $
*/
   
   public class HttpResponseBase
  @@ -1043,8 +1043,8 @@
String absolute = toAbsolute(location);
setStatus(SC_MOVED_TEMPORARILY);
setHeader("Location", absolute);
  -setContentLength(0);
  - flushBuffer();
  +//setContentLength(0);
  + //flushBuffer();
   
   }
   
  
  
  
  1.7   +6 -5  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseImpl.java
  
  Index: HttpResponseImpl.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseImpl.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- HttpResponseImpl.java 2000/11/22 02:29:52 1.6
  +++ HttpResponseImpl.java 2001/02/03 07:48:32 1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseImpl.java,v
 1.6 2000/11/22 02:29:52 remm Exp $
  - * $Revision: 1.6 $
  - * $Date: 2000/11/22 02:29:52 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseImpl.java,v
 1.7 2001/02/03 07:48:32 remm Exp $
  + * $Revision: 1.7 $
  + * $Date: 2001/02/03 07:48:32 $
*
* 
*
  @@ -78,7 +78,7 @@
*
* @author Craig R. McClanahan
* @author mailto:[EMAIL PROTECTED]">Remy Maucherat
  - * @version $Revision: 1.6 $ $Date: 2000/11/22 02:29:52 $
  + * @version $Revision: 1.7 $ $Date: 2001/02/03 07:48:32 $
*/
   
   final class HttpResponseImpl
  @@ -263,7 +263,8 @@
*/
   public void finishResponse() throws IOException {
   
  -if ((!isStreamInitialized()) && (getContentLength() == -1))
  +if ((!isStreamInitialized()) && (getContentLength() == -1)
  +&& (getStatus() != SC_NOT_MODIFIED))
   setContentLength(0);
   super.finishResponse();
   
  
  
  
  1.17  +8 -7  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardWrapperValve.java
  
  Index: StandardWrapperValve.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardWrapperValve.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- StandardWrapperValve.java 2001/01/23 02:51:16 1.16
  +++ StandardWrapperValve.java 2001/02/03 07:48:33 1.17
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardWrapperValve.java,v
 1.16 2001/01/23 02:51:16 craigmcc Exp $
  - * $Revision: 1.16 $
  - * $Date: 2001/01/23 02:51:16 $
  + * $

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-01-31 Thread remm

remm01/01/31 20:29:58

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Fix more i18n issues in the directory browser : output as Unicode. That
should fix the names of the files which are displayed.
  
  Revision  ChangesPath
  1.25  +13 -6 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- DefaultServlet.java   2001/01/31 23:05:08 1.24
  +++ DefaultServlet.java   2001/02/01 04:29:57 1.25
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.24 2001/01/31 23:05:08 remm Exp $
  - * $Revision: 1.24 $
  - * $Date: 2001/01/31 23:05:08 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.25 2001/02/01 04:29:57 remm Exp $
  + * $Revision: 1.25 $
  + * $Date: 2001/02/01 04:29:57 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.24 $ $Date: 2001/01/31 23:05:08 $
  + * @version $Revision: 1.25 $ $Date: 2001/02/01 04:29:57 $
*/
   
   public class DefaultServlet
  @@ -1532,7 +1532,7 @@
  resourceInfo.path);
   return;
   }
  -contentType = "text/html";
  +contentType = "text/html;charset=UTF-8";
   }
   
   
  @@ -1837,7 +1837,14 @@
   
// Prepare a writer to a buffered area
ByteArrayOutputStream stream = new ByteArrayOutputStream();
  - PrintWriter writer = new PrintWriter(stream);
  +OutputStreamWriter osWriter = null;
  +try {
  +osWriter = new OutputStreamWriter(stream, "UTF8");
  +} catch (Exception e) {
  +// Should never happen
  +osWriter = new OutputStreamWriter(stream);
  +}
  +PrintWriter writer = new PrintWriter(osWriter);
   
// FIXME - Currently pays no attention to the user's Locale
   
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-01-31 Thread remm

remm01/01/31 15:05:11

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Change the Unicode encoding name to UTF8, as the UTF-8 name is not present
in all Java2 versions (the earlier ones didn't have it).
Thanks to Tim Tye (<[EMAIL PROTECTED]>) for the info.
  
  Revision  ChangesPath
  1.24  +6 -6  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- DefaultServlet.java   2001/01/30 19:41:50 1.23
  +++ DefaultServlet.java   2001/01/31 23:05:08 1.24
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.23 2001/01/30 19:41:50 remm Exp $
  - * $Revision: 1.23 $
  - * $Date: 2001/01/30 19:41:50 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.24 2001/01/31 23:05:08 remm Exp $
  + * $Revision: 1.24 $
  + * $Date: 2001/01/31 23:05:08 $
*
* 
*
  @@ -122,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.23 $ $Date: 2001/01/30 19:41:50 $
  + * @version $Revision: 1.24 $ $Date: 2001/01/31 23:05:08 $
*/
   
   public class DefaultServlet
  @@ -865,7 +865,7 @@
// bad stuff(tm) can be caught by the later checks
   String normalized = path;
   if (normalized.indexOf('%') >= 0)
  -normalized = RequestUtil.URLDecode(normalized, "UTF-8");
  +normalized = RequestUtil.URLDecode(normalized, "UTF8");
   if (normalized == null)
   return (null);
   
  @@ -931,7 +931,7 @@
ByteArrayOutputStream buf = new ByteArrayOutputStream(maxBytesPerChar);
   OutputStreamWriter writer = null;
   try {
  -writer = new OutputStreamWriter(buf, "UTF-8");
  +writer = new OutputStreamWriter(buf, "UTF8");
   } catch (Exception e) {
   e.printStackTrace();
   writer = new OutputStreamWriter(buf);
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-01-30 Thread remm

remm01/01/30 11:41:54

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Experimental patch : encode and decode the paths using UTF-8.
  
  Revision  ChangesPath
  1.23  +17 -32
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- DefaultServlet.java   2001/01/30 03:50:08 1.22
  +++ DefaultServlet.java   2001/01/30 19:41:50 1.23
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.22 2001/01/30 03:50:08 remm Exp $
  - * $Revision: 1.22 $
  - * $Date: 2001/01/30 03:50:08 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.23 2001/01/30 19:41:50 remm Exp $
  + * $Revision: 1.23 $
  + * $Date: 2001/01/30 19:41:50 $
*
* 
*
  @@ -113,6 +113,7 @@
   import org.apache.catalina.Globals;
   import org.apache.catalina.util.MD5Encoder;
   import org.apache.catalina.util.StringManager;
  +import org.apache.catalina.util.RequestUtil;
   
   
   /**
  @@ -121,7 +122,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.22 $ $Date: 2001/01/30 03:50:08 $
  + * @version $Revision: 1.23 $ $Date: 2001/01/30 19:41:50 $
*/
   
   public class DefaultServlet
  @@ -858,37 +859,15 @@
   if (path == null)
   return null;
   
  - String normalized = path;
  -
// Resolve encoded characters in the normalized path,
// which also handles encoded spaces so we can skip that later.
// Placed at the beginning of the chain so that encoded 
// bad stuff(tm) can be caught by the later checks
  - while (true) {
  - int index = normalized.indexOf("%");
  - if (index < 0)
  - break;
  - char replaceChar;
  - try {
  - replaceChar = (char) ( 
  - Short.parseShort( 
  - normalized.substring( index + 1, index + 3 ), 16 
  - )  
  - );
  - } catch ( NumberFormatException nfe ) {
  - return (null); // bad encoded characters in url
  - }
  - // check for control characters ( values 00-1f and 7f-9f), 
  - // return null if present. See:
  - // http://www.unicode.org/charts/PDF/U.pdf 
  - // http://www.unicode.org/charts/PDF/U0080.pdf
  - if ( Character.isISOControl( replaceChar ) ) {
  - return (null);
  - }
  - normalized = normalized.substring(0, index) +
  - replaceChar +
  - normalized.substring(index + 3);
  -}
  +String normalized = path;
  +if (normalized.indexOf('%') >= 0)
  +normalized = RequestUtil.URLDecode(normalized, "UTF-8");
  +if (normalized == null)
  +return (null);
   
// Normalize the slashes and add leading slash if necessary
if (normalized.indexOf('\\') >= 0)
  @@ -950,7 +929,13 @@
   int caseDiff = ('a' - 'A');
   StringBuffer rewrittenPath = new StringBuffer(path.length());
ByteArrayOutputStream buf = new ByteArrayOutputStream(maxBytesPerChar);
  -OutputStreamWriter writer = new OutputStreamWriter(buf);
  +OutputStreamWriter writer = null;
  +try {
  +writer = new OutputStreamWriter(buf, "UTF-8");
  +} catch (Exception e) {
  +e.printStackTrace();
  +writer = new OutputStreamWriter(buf);
  +}
   
   for (int i = 0; i < path.length(); i++) {
   int c = (int) path.charAt(i);
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-01-30 Thread Remy Maucherat

> Since characters in Java are UNICODE, what does this code do when it
encounters a character who's code point is greater than 0xFF?
> My suggestion, is to first encode the path as a UTF-8 byte array, then
encode the bytes according to this algorithm

Yes, the writer should probably use the "UTF-8" encoding.

Remy


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-01-30 Thread Tim Tye

Since characters in Java are UNICODE, what does this code do when it encounters a 
character who's code point is greater than 0xFF?
My suggestion, is to first encode the path as a UTF-8 byte array, then encode the 
bytes according to this algorithm
Tim

[EMAIL PROTECTED] wrote:

> remm01/01/29 19:50:09
>
>   Modified:catalina/src/share/org/apache/catalina/servlets
> DefaultServlet.java
>   Log:
>   - Will now encode all unsafe characters on the URL.
>
>   Revision  ChangesPath
>   1.22  +84 -28
>jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
>
>   Index: DefaultServlet.java
>   ===
>   RCS file: 
>/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
>   retrieving revision 1.21
>   retrieving revision 1.22
>   diff -u -r1.21 -r1.22
>   --- DefaultServlet.java   2001/01/25 05:45:40 1.21
>   +++ DefaultServlet.java   2001/01/30 03:50:08 1.22
>   @@ -1,7 +1,7 @@
>/*
>   - * $Header: 
>/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
> 1.21 2001/01/25 05:45:40 remm Exp $
>   - * $Revision: 1.21 $
>   - * $Date: 2001/01/25 05:45:40 $
>   + * $Header: 
>/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
> 1.22 2001/01/30 03:50:08 remm Exp $
>   + * $Revision: 1.22 $
>   + * $Date: 2001/01/30 03:50:08 $
> *
> * 
> *
>   @@ -76,6 +76,7 @@
>import java.io.Reader;
>import java.io.InputStreamReader;
>import java.io.Writer;
>   +import java.io.OutputStreamWriter;
>import java.net.MalformedURLException;
>import java.net.URL;
>import java.net.URLEncoder;
>   @@ -87,6 +88,7 @@
>import java.util.Locale;
>import java.util.TimeZone;
>import java.util.Hashtable;
>   +import java.util.BitSet;
>import java.text.ParseException;
>import java.text.SimpleDateFormat;
>import java.security.MessageDigest;
>   @@ -119,7 +121,7 @@
> *
> * @author Craig R. McClanahan
> * @author Remy Maucherat
>   - * @version $Revision: 1.21 $ $Date: 2001/01/25 05:45:40 $
>   + * @version $Revision: 1.22 $ $Date: 2001/01/30 03:50:08 $
> */
>
>public class DefaultServlet
>   @@ -219,6 +221,40 @@
> StringManager.getManager(Constants.Package);
>
>
>   +/**
>   + * Array containing the safe characters set.
>   + */
>   +protected static BitSet safeCharacters;
>   +
>   +
>   +protected static final char[] hexadecimal =
>   +{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
>   + 'A', 'B', 'C', 'D', 'E', 'F'};
>   +
>   +
>   +// - Static Initializer
>   +
>   +
>   +static {
>   + safeCharacters = new BitSet(256);
>   + int i;
>   + for (i = 'a'; i <= 'z'; i++) {
>   + safeCharacters.set(i);
>   + }
>   + for (i = 'A'; i <= 'Z'; i++) {
>   + safeCharacters.set(i);
>   + }
>   + for (i = '0'; i <= '9'; i++) {
>   + safeCharacters.set(i);
>   + }
>   + safeCharacters.set('-');
>   + safeCharacters.set('_');
>   + safeCharacters.set('.');
>   + safeCharacters.set('*');
>   + safeCharacters.set('/');
>   +}
>   +
>   +
>// - Public Methods
>
>
>   @@ -853,7 +889,7 @@
> replaceChar +
> normalized.substring(index + 3);
>}
>   -
>   +
> // Normalize the slashes and add leading slash if necessary
> if (normalized.indexOf('\\') >= 0)
> normalized = normalized.replace('\\', '/');
>   @@ -902,29 +938,49 @@
> * @param path Path which has to be rewiten
> */
>protected String rewriteUrl(String path) {
>   -
>   -String normalized = path;
>   -
>   - // Replace " " with "%20"
>   -while (true) {
>   - int index = normalized.indexOf(" ");
>   - if (index < 0)
>   - break;
>   - normalized = normalized.substring(0, index) + "%20"
>   - + normalized.substring(index + 1);
>   - }
>   -
>   - // Replace "&" with "%26"
>   -while (true) {
>   - int index = normalized.indexOf("&");
>   - if (index < 0)
>   - break;
>   - normalized = normalized.substring(0, index) + "%26"
>   - + normalized.substring(index + 1);
>   - }
>   -
>   -return normalized;
>   -
>   +
>   +/**
>   + * Note: This code portion is very similar to URLEncoder.encode.
>   + * Unfortunately, there is no way to specify to the URLEncoder which
>   + * characters should be encoded. Here, ' ' should be encoded as "%20"
>   + * and '/' shouldn't 

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-01-29 Thread remm

remm01/01/29 19:50:09

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Will now encode all unsafe characters on the URL.
  
  Revision  ChangesPath
  1.22  +84 -28
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- DefaultServlet.java   2001/01/25 05:45:40 1.21
  +++ DefaultServlet.java   2001/01/30 03:50:08 1.22
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.21 2001/01/25 05:45:40 remm Exp $
  - * $Revision: 1.21 $
  - * $Date: 2001/01/25 05:45:40 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.22 2001/01/30 03:50:08 remm Exp $
  + * $Revision: 1.22 $
  + * $Date: 2001/01/30 03:50:08 $
*
* 
*
  @@ -76,6 +76,7 @@
   import java.io.Reader;
   import java.io.InputStreamReader;
   import java.io.Writer;
  +import java.io.OutputStreamWriter;
   import java.net.MalformedURLException;
   import java.net.URL;
   import java.net.URLEncoder;
  @@ -87,6 +88,7 @@
   import java.util.Locale;
   import java.util.TimeZone;
   import java.util.Hashtable;
  +import java.util.BitSet;
   import java.text.ParseException;
   import java.text.SimpleDateFormat;
   import java.security.MessageDigest;
  @@ -119,7 +121,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.21 $ $Date: 2001/01/25 05:45:40 $
  + * @version $Revision: 1.22 $ $Date: 2001/01/30 03:50:08 $
*/
   
   public class DefaultServlet
  @@ -219,6 +221,40 @@
StringManager.getManager(Constants.Package);
   
   
  +/**
  + * Array containing the safe characters set.
  + */
  +protected static BitSet safeCharacters;
  +
  +
  +protected static final char[] hexadecimal = 
  +{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 
  + 'A', 'B', 'C', 'D', 'E', 'F'};
  +
  +
  +// - Static Initializer
  +
  +
  +static {
  + safeCharacters = new BitSet(256);
  + int i;
  + for (i = 'a'; i <= 'z'; i++) {
  + safeCharacters.set(i);
  + }
  + for (i = 'A'; i <= 'Z'; i++) {
  + safeCharacters.set(i);
  + }
  + for (i = '0'; i <= '9'; i++) {
  + safeCharacters.set(i);
  + }
  + safeCharacters.set('-');
  + safeCharacters.set('_');
  + safeCharacters.set('.');
  + safeCharacters.set('*');
  + safeCharacters.set('/');
  +}
  +
  +
   // - Public Methods
   
   
  @@ -853,7 +889,7 @@
replaceChar +
normalized.substring(index + 3);
   }
  -
  +
// Normalize the slashes and add leading slash if necessary
if (normalized.indexOf('\\') >= 0)
normalized = normalized.replace('\\', '/');
  @@ -902,29 +938,49 @@
* @param path Path which has to be rewiten
*/
   protected String rewriteUrl(String path) {
  -
  -String normalized = path;
  -
  - // Replace " " with "%20"
  -while (true) {
  - int index = normalized.indexOf(" ");
  - if (index < 0)
  - break;
  - normalized = normalized.substring(0, index) + "%20"
  - + normalized.substring(index + 1);
  - }
  -
  - // Replace "&" with "%26"
  -while (true) {
  - int index = normalized.indexOf("&");
  - if (index < 0)
  - break;
  - normalized = normalized.substring(0, index) + "%26"
  - + normalized.substring(index + 1);
  - }
  -
  -return normalized;
  -
  +
  +/**
  + * Note: This code portion is very similar to URLEncoder.encode.
  + * Unfortunately, there is no way to specify to the URLEncoder which
  + * characters should be encoded. Here, ' ' should be encoded as "%20"
  + * and '/' shouldn't be encoded.
  + */
  +
  + int maxBytesPerChar = 10;
  +int caseDiff = ('a' - 'A');
  +StringBuffer rewrittenPath = new StringBuffer(path.length());
  + ByteArrayOutputStream buf = new ByteArrayOutputStream(maxBytesPerChar);
  +OutputStreamWriter writer = new OutputStreamWriter(buf);
  +
  +for (int i = 0; i < path.length(); i++) {
  +int c = (int) path.charAt(i);
  +if (safeCharacters.get(c)) {
  + 

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java WebdavServlet.java

2001-01-24 Thread remm

remm01/01/24 21:45:41

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java WebdavServlet.java
  Log:
  - Update PROPFIND to use streaming (as the response could get very big).
  - Fix a bug where href elements could include incorrect paths containing "//".
  - Avoid putting the '&' character in the XML response.
  
  Revision  ChangesPath
  1.21  +13 -4 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- DefaultServlet.java   2001/01/23 04:47:57 1.20
  +++ DefaultServlet.java   2001/01/25 05:45:40 1.21
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.20 2001/01/23 04:47:57 remm Exp $
  - * $Revision: 1.20 $
  - * $Date: 2001/01/23 04:47:57 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.21 2001/01/25 05:45:40 remm Exp $
  + * $Revision: 1.21 $
  + * $Date: 2001/01/25 05:45:40 $
*
* 
*
  @@ -119,7 +119,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.20 $ $Date: 2001/01/23 04:47:57 $
  + * @version $Revision: 1.21 $ $Date: 2001/01/25 05:45:40 $
*/
   
   public class DefaultServlet
  @@ -911,6 +911,15 @@
if (index < 0)
break;
normalized = normalized.substring(0, index) + "%20"
  + + normalized.substring(index + 1);
  + }
  +
  + // Replace "&" with "%26"
  +while (true) {
  + int index = normalized.indexOf("&");
  + if (index < 0)
  + break;
  + normalized = normalized.substring(0, index) + "%26"
+ normalized.substring(index + 1);
}
   
  
  
  
  1.11  +23 -13
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- WebdavServlet.java2001/01/23 04:47:57 1.10
  +++ WebdavServlet.java2001/01/25 05:45:40 1.11
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
 1.10 2001/01/23 04:47:57 remm Exp $
  - * $Revision: 1.10 $
  - * $Date: 2001/01/23 04:47:57 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
 1.11 2001/01/25 05:45:40 remm Exp $
  + * $Revision: 1.11 $
  + * $Date: 2001/01/25 05:45:40 $
*
* 
*
  @@ -124,7 +124,7 @@
* are handled by the DefaultServlet.
*
* @author Remy Maucherat
  - * @version $Revision: 1.10 $ $Date: 2001/01/23 04:47:57 $
  + * @version $Revision: 1.11 $ $Date: 2001/01/25 05:45:40 $
*/
   
   public class WebdavServlet
  @@ -507,7 +507,7 @@
   resp.setStatus(WebdavStatus.SC_MULTI_STATUS);
   
   // Create multistatus object
  -XMLWriter generatedXML = new XMLWriter();
  +XMLWriter generatedXML = new XMLWriter(resp.getWriter());
   generatedXML.writeXMLHeader();
   
   generatedXML.writeElement(null, "multistatus" 
  @@ -543,7 +543,7 @@
   NameClassPair ncPair = 
   (NameClassPair) enum.nextElement();
   String newPath = currentPath;
  -if (!newPath.equals("/"))
  +if (!(newPath.endsWith("/")))
   newPath += "/";
   newPath += ncPair.getName();
   stackBelow.push(newPath);
  @@ -581,15 +581,21 @@
   stackBelow = new Stack();
   }
   
  +generatedXML.sendData();
  +
   }
   }
   
   generatedXML.writeElement(null, "multistatus", 
 XMLWriter.CLOSING);
   
  +generatedXML.sendData();
  +
  +/*
   Writer writer = resp.getWriter();
   writer.write(generatedXML.toString());
   writer.flush();
  +*/
   
   }
   
  @@ -1906,8 +1912,9 @@
 

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java LocalStrings.properties WebdavServlet.java

2001-01-22 Thread remm

remm01/01/22 20:47:57

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java LocalStrings.properties
WebdavServlet.java
  Log:
  - Backport from 4.1.
  - Update DefaultServlet and WebdavServlet to use the directory contexts.
  
  Revision  ChangesPath
  1.20  +436 -69   
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- DefaultServlet.java   2001/01/18 20:20:55 1.19
  +++ DefaultServlet.java   2001/01/23 04:47:57 1.20
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.19 2001/01/18 20:20:55 remm Exp $
  - * $Revision: 1.19 $
  - * $Date: 2001/01/18 20:20:55 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.20 2001/01/23 04:47:57 remm Exp $
  + * $Revision: 1.20 $
  + * $Date: 2001/01/23 04:47:57 $
*
* 
*
  @@ -66,6 +66,8 @@
   
   
   import java.io.BufferedInputStream;
  +import java.io.ByteArrayOutputStream;
  +import java.io.ByteArrayInputStream;
   import java.io.File;
   import java.io.FileInputStream;
   import java.io.InputStream;
  @@ -76,6 +78,7 @@
   import java.io.Writer;
   import java.net.MalformedURLException;
   import java.net.URL;
  +import java.net.URLEncoder;
   import java.sql.Timestamp;
   import java.util.Date;
   import java.util.Enumeration;
  @@ -95,16 +98,19 @@
   import javax.servlet.http.HttpServlet;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
  +import javax.naming.NamingException;
  +import javax.naming.InitialContext;
  +import javax.naming.Context;
  +import javax.naming.NamingEnumeration;
  +import javax.naming.NameClassPair;
  +import javax.naming.directory.DirContext;
  +import javax.naming.directory.Attribute;
  +import javax.naming.directory.Attributes;
  +import org.apache.naming.resources.Resource;
  +import org.apache.naming.resources.ResourceAttributes;
   import org.apache.catalina.Globals;
  -import org.apache.catalina.Resources;
  -import org.apache.catalina.core.ApplicationContext;
  -import org.apache.catalina.resources.ResourceBean;
  -import org.apache.catalina.resources.DirectoryBean;
   import org.apache.catalina.util.MD5Encoder;
   import org.apache.catalina.util.StringManager;
  -import org.apache.catalina.util.xml.SaxContext;
  -import org.apache.catalina.util.xml.XmlAction;
  -import org.apache.catalina.util.xml.XmlMapper;
   
   
   /**
  @@ -113,7 +119,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.19 $ $Date: 2001/01/18 20:20:55 $
  + * @version $Revision: 1.20 $ $Date: 2001/01/23 04:47:57 $
*/
   
   public class DefaultServlet
  @@ -201,6 +207,12 @@
   
   
   /**
  + * JNDI resources name.
  + */
  +protected static final String RESOURCES_JNDI_NAME = "java:/comp/Resources";
  +
  +
  +/**
* The string manager for this package.
*/
   protected static StringManager sm =
  @@ -295,6 +307,38 @@
   
   
   /**
  + * Get resources. This method will try to retrieve the resources through
  + * JNDI first, then in the servlet context if JNDI has failed (it could be
  + * disabled). It will return null.
  + * 
  + * @return A JNDI DirContext, or null.
  + */
  +protected DirContext getResources() {
  +
  +// First : try JNDI
  +try {
  +return 
  +(DirContext) new InitialContext().lookup(RESOURCES_JNDI_NAME);
  +} catch (NamingException e) {
  +// Failed
  +} catch (ClassCastException e) {
  +// Failed : Not the right type
  +}
  +
  +// If it has failed, try the servlet context
  +try {
  +return (DirContext) getServletContext()
  +.getAttribute(Globals.RESOURCES_ATTR);
  +} catch (ClassCastException e) {
  +// Failed : Not the right type
  +}
  +
  +return null;
  +
  +}
  +
  +
  +/**
* Show HTTP header information.
*/
   protected void showRequestInfo(HttpServletRequest req) {
  @@ -408,7 +452,7 @@
   if ((result == null) || (result.equals(""))) {
   result = "/";
   }
  -return result;
  +return normalize(result);
   
   }
   
  @@ -494,14 +538,30 @@
   resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED);
   }
   
 

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-01-18 Thread remm

remm01/01/18 12:20:56

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Fix inclusion problems by catching the IllegalStateException which
can be thrown by the servlet container.
  
  Revision  ChangesPath
  1.19  +19 -7 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- DefaultServlet.java   2001/01/08 16:45:55 1.18
  +++ DefaultServlet.java   2001/01/18 20:20:55 1.19
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.18 2001/01/08 16:45:55 remm Exp $
  - * $Revision: 1.18 $
  - * $Date: 2001/01/08 16:45:55 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.19 2001/01/18 20:20:55 remm Exp $
  + * $Revision: 1.19 $
  + * $Date: 2001/01/18 20:20:55 $
*
* 
*
  @@ -113,7 +113,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.18 $ $Date: 2001/01/08 16:45:55 $
  + * @version $Revision: 1.19 $ $Date: 2001/01/18 20:20:55 $
*/
   
   public class DefaultServlet
  @@ -1456,7 +1456,11 @@
   
   // Copy the input stream to our output stream (if requested)
   if (content) {
  -response.setBufferSize(output);
  +try {
  +response.setBufferSize(output);
  +} catch (IllegalStateException e) {
  +// Silent catch
  +}
   if (ostream != null) {
   copy(resourceInfo, ostream);
   } else {
  @@ -1489,7 +1493,11 @@
   }
   
   if (content) {
  -response.setBufferSize(output);
  +try {
  +response.setBufferSize(output);
  +} catch (IllegalStateException e) {
  +// Silent catch
  +}
   if (ostream != null) {
   copy(resourceInfo, ostream, range);
   } else {
  @@ -1503,7 +1511,11 @@
   + mimeSeparation);
   
   if (content) {
  -response.setBufferSize(output);
  +try {
  +response.setBufferSize(output);
  +} catch (IllegalStateException e) {
  +// Silent catch
  +}
   if (ostream != null) {
   copy(resourceInfo, ostream, ranges.elements(), 
contentType);
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-01-08 Thread remm

remm01/01/08 08:45:55

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Dates returned should indeed be GMT.
Patch submitted by Moonhyoung Lee.
  
  Revision  ChangesPath
  1.18  +18 -4 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- DefaultServlet.java   2001/01/04 20:00:35 1.17
  +++ DefaultServlet.java   2001/01/08 16:45:55 1.18
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.17 2001/01/04 20:00:35 remm Exp $
  - * $Revision: 1.17 $
  - * $Date: 2001/01/04 20:00:35 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.18 2001/01/08 16:45:55 remm Exp $
  + * $Revision: 1.18 $
  + * $Date: 2001/01/08 16:45:55 $
*
* 
*
  @@ -82,6 +82,7 @@
   import java.util.Vector;
   import java.util.StringTokenizer;
   import java.util.Locale;
  +import java.util.TimeZone;
   import java.util.Hashtable;
   import java.text.ParseException;
   import java.text.SimpleDateFormat;
  @@ -112,7 +113,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.17 $ $Date: 2001/01/04 20:00:35 $
  + * @version $Revision: 1.18 $ $Date: 2001/01/08 16:45:55 $
*/
   
   public class DefaultServlet
  @@ -178,6 +179,19 @@
new SimpleDateFormat("EE, dd-MMM-yy HH:mm:ss zzz", Locale.US),
new SimpleDateFormat("EEE  d HH:mm:ss ", Locale.US)
   };
  +
  +
  +protected final static TimeZone gmtZone = TimeZone.getTimeZone("GMT");
  +
  +
  +/**
  + * GMT timezone - all HTTP dates are on GMT
  + */
  +static {
  +formats[0].setTimeZone(gmtZone);
  +formats[1].setTimeZone(gmtZone);
  +formats[2].setTimeZone(gmtZone);
  +}
   
   
   /**
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2001-01-04 Thread remm

remm01/01/04 12:00:36

  Modified:catalina/src/share/org/apache/catalina/resources
ResourcesBase.java
   catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Enhanced path normalization (before, only %20 was supported), with
Unicode decoding of "escaped" characters in the URL (%xx char codes).
Path submitted by David Weinrich.
  
  Revision  ChangesPath
  1.4   +34 -14
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/resources/ResourcesBase.java
  
  Index: ResourcesBase.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/resources/ResourcesBase.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ResourcesBase.java2000/10/17 19:45:25 1.3
  +++ ResourcesBase.java2001/01/04 20:00:32 1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/resources/ResourcesBase.java,v
 1.3 2000/10/17 19:45:25 craigmcc Exp $
  - * $Revision: 1.3 $
  - * $Date: 2000/10/17 19:45:25 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/resources/ResourcesBase.java,v
 1.4 2001/01/04 20:00:32 remm Exp $
  + * $Revision: 1.4 $
  + * $Date: 2001/01/04 20:00:32 $
*
* 
*
  @@ -101,7 +101,7 @@
* (such as a local or remote JAR file).
*
* @author Craig R. McClanahan
  - * @version $Revision: 1.3 $ $Date: 2000/10/17 19:45:25 $
  + * @version $Revision: 1.4 $ $Date: 2001/01/04 20:00:32 $
*/
   
   public abstract class ResourcesBase
  @@ -962,8 +962,37 @@
*/
   protected String normalize(String path) {
   
  - // Normalize the slashes and add leading slash if necessary
String normalized = path;
  +
  + // Resolve encoded characters in the normalized path,
  + // which also handles encoded spaces so we can skip that later.
  +// Placed at the beginning of the chain so that encoded 
  +// bad stuff(tm) can be caught by the later checks
  +while (true) {
  +int index = normalized.indexOf("%");
  +if (index < 0)
  +break;
  +char replaceChar;
  +try {
  +replaceChar = 
  +(char) (Short.parseShort
  +(normalized.substring(index + 1, index + 3), 16));
  +} catch ( NumberFormatException nfe ) {
  +return (null); // bad encoded characters in url
  +}
  + // check for control characters ( values 00-1f and 7f-9f), 
  + // return null if present. See:
  + // http://www.unicode.org/charts/PDF/U.pdf 
  + // http://www.unicode.org/charts/PDF/U0080.pdf
  + if ( Character.isISOControl( replaceChar ) ) {
  +return (null);
  +}
  +normalized = normalized.substring(0, index) +
  +replaceChar +
  +normalized.substring(index + 3);
  +}
  +
  + // Normalize the slashes and add leading slash if necessary
if (normalized.indexOf('\\') >= 0)
normalized = normalized.replace('\\', '/');
if (!normalized.startsWith("/"))
  @@ -977,15 +1006,6 @@
normalized = normalized.substring(0, index) +
normalized.substring(index + 1);
}
  -
  - // Resolve occurrences of "%20" in the normalized path
  - while (true) {
  - int index = normalized.indexOf("%20");
  - if (index < 0)
  - break;
  - normalized = normalized.substring(0, index) + " " +
  - normalized.substring(index + 3);
  -}
   
// Resolve occurrences of "/./" in the normalized path
while (true) {
  
  
  
  1.17  +36 -14
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- DefaultServlet.java   2000/12/11 17:07:25 1.16
  +++ DefaultServlet.java   2001/01/04 20:00:35 1.17
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.16 2000/12/11 17:07:25 remm Exp $
  - * $Revision: 1.16 $
  - * $Date: 2000/12/11 17:07:25 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.17 2001/01/04 20:00:35 remm Exp $
  + * $Revision: 1.17 $
  + * $Date: 2001/01/04 20:00:35 $
*
*

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2000-12-11 Thread remm

remm00/12/11 09:07:27

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Fix a security problem where /WEB-INF could be accessed using a path like
//WEB-INF. Now, the path is normalized before checking for /WEB-INF.
  
  Revision  ChangesPath
  1.16  +71 -6 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- DefaultServlet.java   2000/11/15 01:08:23 1.15
  +++ DefaultServlet.java   2000/12/11 17:07:25 1.16
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.15 2000/11/15 01:08:23 remm Exp $
  - * $Revision: 1.15 $
  - * $Date: 2000/11/15 01:08:23 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.16 2000/12/11 17:07:25 remm Exp $
  + * $Revision: 1.16 $
  + * $Date: 2000/12/11 17:07:25 $
*
* 
*
  @@ -112,7 +112,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.15 $ $Date: 2000/11/15 01:08:23 $
  + * @version $Revision: 1.16 $ $Date: 2000/12/11 17:07:25 $
*/
   
   public class DefaultServlet
  @@ -719,6 +719,69 @@
   }
   
   
  +/**
  + * Return a context-relative path, beginning with a "/", that represents
  + * the canonical version of the specified path after ".." and "." elements
  + * are resolved out.  If the specified path attempts to go outside the
  + * boundaries of the current context (i.e. too many ".." path elements
  + * are present), return null instead.
  + *
  + * @param path Path to be normalized
  + */
  +protected String normalize(String path) {
  +
  + // Normalize the slashes and add leading slash if necessary
  + String normalized = path;
  + if (normalized.indexOf('\\') >= 0)
  + normalized = normalized.replace('\\', '/');
  + if (!normalized.startsWith("/"))
  + normalized = "/" + normalized;
  +
  + // Resolve occurrences of "//" in the normalized path
  + while (true) {
  + int index = normalized.indexOf("//");
  + if (index < 0)
  + break;
  + normalized = normalized.substring(0, index) +
  + normalized.substring(index + 1);
  + }
  +
  + // Resolve occurrences of "%20" in the normalized path
  + while (true) {
  + int index = normalized.indexOf("%20");
  + if (index < 0)
  + break;
  + normalized = normalized.substring(0, index) + " " +
  + normalized.substring(index + 3);
  +}
  +
  + // Resolve occurrences of "/./" in the normalized path
  + while (true) {
  + int index = normalized.indexOf("/./");
  + if (index < 0)
  + break;
  + normalized = normalized.substring(0, index) +
  + normalized.substring(index + 2);
  + }
  +
  + // Resolve occurrences of "/../" in the normalized path
  + while (true) {
  + int index = normalized.indexOf("/../");
  + if (index < 0)
  + break;
  + if (index == 0)
  + return (null);  // Trying to go outside our context
  + int index2 = normalized.lastIndexOf('/', index - 1);
  + normalized = normalized.substring(0, index2) +
  + normalized.substring(index + 3);
  + }
  +
  + // Return the normalized path that we have completed
  + return (normalized);
  +
  +}
  +
  +
   //  Private Methods
   
   
  @@ -1224,8 +1287,10 @@
   
// Exclude any resource in the /WEB-INF and /META-INF subdirectories
// (the "toUpperCase()" avoids problems on Windows systems)
  - if (path.toUpperCase().startsWith("/WEB-INF") ||
  - path.toUpperCase().startsWith("/META-INF")) {
  +String normalizedPath = normalize(path);
  + if ((normalizedPath == null) ||
  +normalizedPath.toUpperCase().startsWith("/WEB-INF") ||
  + normalizedPath.toUpperCase().startsWith("/META-INF")) {
response.sendError(HttpServletResponse.SC_NOT_FOUND, path);
return;
}
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2000-11-14 Thread remm

remm00/11/14 17:08:24

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - DefaultServlet won't do anything on a POST.
  - Noticed a check was missing in If-None-Match header handling (* wildcard).
  
  Revision  ChangesPath
  1.15  +29 -30
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- DefaultServlet.java   2000/11/10 18:33:48 1.14
  +++ DefaultServlet.java   2000/11/15 01:08:23 1.15
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.14 2000/11/10 18:33:48 remm Exp $
  - * $Revision: 1.14 $
  - * $Date: 2000/11/10 18:33:48 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.15 2000/11/15 01:08:23 remm Exp $
  + * $Revision: 1.15 $
  + * $Date: 2000/11/15 01:08:23 $
*
* 
*
  @@ -112,7 +112,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.14 $ $Date: 2000/11/10 18:33:48 $
  + * @version $Revision: 1.15 $ $Date: 2000/11/15 01:08:23 $
*/
   
   public class DefaultServlet
  @@ -452,9 +452,6 @@
   protected void doPost(HttpServletRequest request,
 HttpServletResponse response)
throws IOException, ServletException {
  -
  - doPut(request, response);
  -
   }
   
   
  @@ -627,10 +624,12 @@
   // Checking If-None-Match
   headerValue = request.getHeader("If-None-Match");
   if (headerValue != null) {
  -if (headerValue.indexOf("*") == -1) {
  +
  +boolean conditionSatisfied = false;
  +
  +if (!headerValue.equals("*")) {
   
   commaTokenizer = new StringTokenizer(headerValue, ",");
  -boolean conditionSatisfied = false;
   
   while (!conditionSatisfied && commaTokenizer.hasMoreTokens()) {
   String currentToken = commaTokenizer.nextToken();
  @@ -638,29 +637,28 @@
   conditionSatisfied = true;
   }
   
  -if (conditionSatisfied) {
  -
  -// For GET and HEAD, we should respond with 
  -// 304 Not Modified.
  -// For every other method, 412 Precondition Failed is sent
  -// back.
  -if ( ("GET".equals(request.getMethod()))
  - || ("HEAD".equals(request.getMethod())) ) {
  -response.sendError
  -(HttpServletResponse.SC_NOT_MODIFIED);
  -return false;
  -} else {
  -response.sendError
  -(HttpServletResponse.SC_PRECONDITION_FAILED);
  -return false;
  -}
  -}
  -
   } else {
  -if (resourceInfo.exists()) {
  -
  +conditionSatisfied = true;
  +}
  +
  +if (conditionSatisfied) {
  +
  +// For GET and HEAD, we should respond with 
  +// 304 Not Modified.
  +// For every other method, 412 Precondition Failed is sent
  +// back.
  +if ( ("GET".equals(request.getMethod()))
  + || ("HEAD".equals(request.getMethod())) ) {
  +response.sendError
  +(HttpServletResponse.SC_NOT_MODIFIED);
  +return false;
  +} else {
  +response.sendError
  +(HttpServletResponse.SC_PRECONDITION_FAILED);
  +return false;
   }
   }
  +
   }
   
   // Checking If-Unmodified-Since
  @@ -1280,8 +1278,9 @@
}
   
   // Checking If headers
  -if ( !checkIfHeaders(request, response, resourceInfo) )
  +if ( !checkIfHeaders(request, response, resourceInfo) ) {
   return;
  +}
   
   // Find content type.
   String contentType = 
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTE

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2000-11-10 Thread remm

remm00/11/10 10:33:48

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Fix for a security problem in the default configuration. The DefaultServlet
(and WebdavServlet) were set in read-write mode unless the readonly
parameter was explicitely specified in the web.xml (and obviously that's NOT
a good idea).
  
  Revision  ChangesPath
  1.14  +6 -5  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DefaultServlet.java   2000/11/09 18:56:10 1.13
  +++ DefaultServlet.java   2000/11/10 18:33:48 1.14
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.13 2000/11/09 18:56:10 remm Exp $
  - * $Revision: 1.13 $
  - * $Date: 2000/11/09 18:56:10 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.14 2000/11/10 18:33:48 remm Exp $
  + * $Revision: 1.14 $
  + * $Date: 2000/11/10 18:33:48 $
*
* 
*
  @@ -112,7 +112,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.13 $ $Date: 2000/11/09 18:56:10 $
  + * @version $Revision: 1.14 $ $Date: 2000/11/10 18:33:48 $
*/
   
   public class DefaultServlet
  @@ -233,7 +233,8 @@
}
try {
value = getServletConfig().getInitParameter("readonly");
  - readOnly = (new Boolean(value)).booleanValue();
  +if (value != null)
  +readOnly = (new Boolean(value)).booleanValue();
} catch (Throwable t) {
;
}
  
  
  

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




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java

2000-11-09 Thread remm

remm00/11/09 10:56:10

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java
  Log:
  - Revert yesterday's change, which is now unnecessary due the change in
chunking policy.
  
  Revision  ChangesPath
  1.13  +23 -51
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- DefaultServlet.java   2000/11/09 07:22:22 1.12
  +++ DefaultServlet.java   2000/11/09 18:56:10 1.13
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.12 2000/11/09 07:22:22 remm Exp $
  - * $Revision: 1.12 $
  - * $Date: 2000/11/09 07:22:22 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.13 2000/11/09 18:56:10 remm Exp $
  + * $Revision: 1.13 $
  + * $Date: 2000/11/09 18:56:10 $
*
* 
*
  @@ -112,7 +112,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.12 $ $Date: 2000/11/09 07:22:22 $
  + * @version $Revision: 1.13 $ $Date: 2000/11/09 18:56:10 $
*/
   
   public class DefaultServlet
  @@ -1316,6 +1316,25 @@
   ServletOutputStream ostream = null;
   PrintWriter writer = null;
   
  +if (content) {
  +
  +// Trying to retrieve the servlet output stream
  +
  +try {
  +ostream = response.getOutputStream();
  +} catch (IllegalStateException e) {
  +// If it fails, we try to get a Writer instead if we're 
  +// trying to serve a text file
  +if ( (contentType != null) 
  + && (contentType.startsWith("text")) ) {
  +writer = response.getWriter();
  +} else {
  +throw e;
  +}
  +}
  +
  +}
  +
   if ( ((ranges == null) || (ranges.isEmpty())) 
&& (request.getHeader("Range") == null) ) {
   
  @@ -1334,21 +1353,6 @@
   response.setContentLength((int) contentLength);
   }
   
  -// Trying to retrieve the servlet output stream
  -
  -try {
  -ostream = response.getOutputStream();
  -} catch (IllegalStateException e) {
  -// If it fails, we try to get a Writer instead if we're 
  -// trying to serve a text file
  -if ( (contentType != null) 
  - && (contentType.startsWith("text")) ) {
  -writer = response.getWriter();
  -} else {
  -throw e;
  -}
  -}
  -
   // Copy the input stream to our output stream (if requested)
   if (content) {
   response.setBufferSize(output);
  @@ -1385,22 +1389,6 @@
   
   if (content) {
   response.setBufferSize(output);
  -
  -// Trying to retrieve the servlet output stream
  -
  -try {
  -ostream = response.getOutputStream();
  -} catch (IllegalStateException e) {
  -// If it fails, we try to get a Writer instead if 
  -// we're trying to serve a text file
  -if ( (contentType != null) 
  - && (contentType.startsWith("text")) ) {
  -writer = response.getWriter();
  -} else {
  -throw e;
  -}
  -}
  -
   if (ostream != null) {
   copy(resourceInfo, ostream, range);
   } else {
  @@ -1415,22 +1403,6 @@
   
   if (content) {
   response.setBufferSize(output);
  -
  -// Trying to retrieve the servlet output stream
  -
  -try {
  -ostream = response.getOutputStream();
  -} catch (IllegalStateException e) {
  -// If it fails, we try to get a Writer instead if 
  -// we're trying to serve a text file
  -if ( (contentType != null) 
  

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java WebdavServlet.java

2000-11-08 Thread remm

remm00/11/08 23:22:24

  Modified:catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java WebdavServlet.java
  Log:
  - Add a debug method in the DefaultServlet, which will output to System.out
all the info about the request. It should be useful to debug conditional
requests and ranged requests.
  - In the WebDAV servlet, one of the XMLWriters I was using wasn't
properly initialized. As a result, the XML header wasn't present in the
XML sent back to the client, which may have caused various problems with some
clients.
  - Now use ISO date format for the creationdate property.
  - Fixes one or two cosmetic issues in the code layout.
  - The displayname property now have a more "friendly" value (the '/' are
replaced by '_')
  - The JSP include fix intrduced a bug : The response stream was not opened at
the right time, so chunking was enabled all the time (it seems).
Note : We should decide if we chunk or not in a more robust way. It will be
addressed in a future patch.
  
  Revision  ChangesPath
  1.12  +141 -23   
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- DefaultServlet.java   2000/10/17 19:45:27 1.11
  +++ DefaultServlet.java   2000/11/09 07:22:22 1.12
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.11 2000/10/17 19:45:27 craigmcc Exp $
  - * $Revision: 1.11 $
  - * $Date: 2000/10/17 19:45:27 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
 1.12 2000/11/09 07:22:22 remm Exp $
  + * $Revision: 1.12 $
  + * $Date: 2000/11/09 07:22:22 $
*
* 
*
  @@ -112,7 +112,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.11 $ $Date: 2000/10/17 19:45:27 $
  + * @version $Revision: 1.12 $ $Date: 2000/11/09 07:22:22 $
*/
   
   public class DefaultServlet
  @@ -280,6 +280,93 @@
   
   
   /**
  + * Show HTTP header information.
  + */
  +protected void showRequestInfo(HttpServletRequest req) {
  + 
  + System.out.println();
  + System.out.println("SlideDAV Request Info");
  + System.out.println();
  + 
  + // Show generic info
  + System.out.println("Encoding : " + req.getCharacterEncoding());
  + System.out.println("Length : " + req.getContentLength());
  + System.out.println("Type : " + req.getContentType());
  + 
  + System.out.println();
  + System.out.println("Parameters");
  + 
  + Enumeration parameters = req.getParameterNames();
  + 
  + while (parameters.hasMoreElements()) {
  + String paramName = (String) parameters.nextElement();
  + String[] values = req.getParameterValues(paramName);
  + System.out.print(paramName + " : ");
  + for (int i = 0; i < values.length; i++) {
  + System.out.print(values[i] + ", ");
  + }
  + System.out.println();
  + }
  + 
  + System.out.println();
  + 
  + System.out.println("Protocol : " + req.getProtocol());
  + System.out.println("Address : " + req.getRemoteAddr());
  + System.out.println("Host : " + req.getRemoteHost());
  + System.out.println("Scheme : " + req.getScheme());
  + System.out.println("Server Name : " + req.getServerName());
  + System.out.println("Server Port : " + req.getServerPort());
  + 
  + System.out.println();
  + System.out.println("Attributes");
  + 
  + Enumeration attributes = req.getAttributeNames();
  + 
  + while (attributes.hasMoreElements()) {
  + String attributeName = (String) attributes.nextElement();
  + System.out.print(attributeName + " : ");
  + System.out.println(req.getAttribute(attributeName).toString());
  + }
  + 
  + System.out.println();
  + 
  + // Show HTTP info
  + System.out.println();
  + System.out.println("HTTP Header Info");
  + System.out.println();
  + 
  + System.out.println("Authentication Type : " + req.getAuthType());
  + System.out.println("HTTP Method : " + req.getMethod());
  + System.out.println("Path Info : " + req.getPathInfo());
  + System.out.println("Path translated : " + req.getPathTranslated());
  + System.out.println("Query string : " + req.getQueryString());
  + System.out.println("Remote user : " + req.getRemoteUser());
  + System.out.println("Requested session id : " 
  +