cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2005-06-27 Thread markt
markt   2005/06/27 14:54:55

  Modified:catalina/src/share/org/apache/naming/resources
FileDirContext.java
  Log:
  DefaultServlet was showing symbolic links in directory listings with
   - no last modified date for files or dirs
   - no size for files
   - files were displayed as directories.
  
  Revision  ChangesPath
  1.18  +5 -1  
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- FileDirContext.java   4 Feb 2005 22:08:03 -   1.17
  +++ FileDirContext.java   27 Jun 2005 21:54:55 -  1.18
  @@ -212,6 +212,8 @@
   if (file.isDirectory()) {
   FileDirContext tempContext = new FileDirContext(env);
   tempContext.setDocBase(file.getPath());
  +tempContext.setAllowLinking(getAllowLinking());
  +tempContext.setCaseSensitive(isCaseSensitive());
   result = tempContext;
   } else {
   result = new FileResource(file);
  @@ -892,6 +894,8 @@
   if (currentFile.isDirectory()) {
   FileDirContext tempContext = new FileDirContext(env);
   tempContext.setDocBase(file.getPath());
  +tempContext.setAllowLinking(getAllowLinking());
  +tempContext.setCaseSensitive(isCaseSensitive());
   object = tempContext;
   } else {
   object = new FileResource(currentFile);
  
  
  

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



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2002-11-06 Thread remm
remm2002/11/06 01:57:18

  Modified:catalina/src/share/org/apache/naming/resources
FileDirContext.java
  Log:
  - Don't do the case sensitivity check if allow linking is used (this is a Unix 
specific
option).
  
  Revision  ChangesPath
  1.15  +5 -5  
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- FileDirContext.java   18 Sep 2002 13:54:33 -  1.14
  +++ FileDirContext.java   6 Nov 2002 09:57:17 -   1.15
   -895,7 +895,7 
   }
   
   // Case sensitivity check
  -if (caseSensitive) {
  +if (!allowLinking  caseSensitive) {
   String fileAbsPath = file.getAbsolutePath();
   if (fileAbsPath.endsWith(.))
   fileAbsPath = fileAbsPath + /;
  
  
  

--
To unsubscribe, e-mail:   mailto:tomcat-dev-unsubscribe;jakarta.apache.org
For additional commands, e-mail: mailto:tomcat-dev-help;jakarta.apache.org




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2002-09-18 Thread remm

remm2002/09/18 06:54:33

  Modified:catalina/src/share/org/apache/naming/resources
FileDirContext.java
  Log:
  - Case sensitivity check will always be made, based on the value of the flag,
regardless of this OS.
  - Add a flag to allow sym linking.
  - I'll wait to port the patch to 5.0 based on the feedback.
  
  Revision  ChangesPath
  1.14  +31 -7 
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- FileDirContext.java   17 Mar 2002 00:03:13 -  1.13
  +++ FileDirContext.java   18 Sep 2002 13:54:33 -  1.14
  @@ -154,6 +154,12 @@
   protected boolean caseSensitive = true;
   
   
  +/**
  + * Allow linking.
  + */
  +protected boolean allowLinking = false;
  +
  +
   // - Properties
   
   
  @@ -208,6 +214,22 @@
   }
   
   
  +/**
  + * Set allow linking.
  + */
  +public void setAllowLinking(boolean allowLinking) {
  +this.allowLinking = allowLinking;
  +}
  +
  +
  +/**
  + * Is linking allowed.
  + */
  +public boolean getAllowLinking() {
  +return allowLinking;
  +}
  +
  +
   // - Public Methods
   
   
  @@ -217,6 +239,7 @@
   public void release() {
   
   caseSensitive = true;
  +allowLinking = false;
   absoluteBase = null;
   base = null;
   super.release();
  @@ -866,12 +889,13 @@
   if (canPath == null)
   return null;
   
  -if (!canPath.startsWith(absoluteBase)) {
  +// Check to see if going outside of the web application root
  +if ((!allowLinking)  (!canPath.startsWith(absoluteBase))) {
   return null;
   }
   
  -// Windows only check
  -if ((caseSensitive)  (File.separatorChar  == '\\')) {
  +// Case sensitivity check
  +if (caseSensitive) {
   String fileAbsPath = file.getAbsolutePath();
   if (fileAbsPath.endsWith(.))
   fileAbsPath = fileAbsPath + /;
  
  
  

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




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2002-03-16 Thread remm

remm02/03/16 16:03:13

  Modified:catalina/src/share/org/apache/naming/resources
FileDirContext.java
  Log:
  - Fix an off-by-one bug in the canonicalization code. Somehow it was failing only
on JDK 1.3, but not on 1.4.0, and somehow 4.0.x works fine (so I don't plan to fix 
it).
  
  Revision  ChangesPath
  1.13  +8 -16 
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- FileDirContext.java   14 Mar 2002 20:55:47 -  1.12
  +++ FileDirContext.java   17 Mar 2002 00:03:13 -  1.13
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.12 2002/03/14 20:55:47 remm Exp $
  - * $Revision: 1.12 $
  - * $Date: 2002/03/14 20:55:47 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.13 2002/03/17 00:03:13 remm Exp $
  + * $Revision: 1.13 $
  + * $Date: 2002/03/17 00:03:13 $
*
* 
*
  @@ -99,7 +99,7 @@
* Filesystem Directory Context implementation helper class.
*
* @author Remy Maucherat
  - * @version $Revision: 1.12 $ $Date: 2002/03/14 20:55:47 $
  + * @version $Revision: 1.13 $ $Date: 2002/03/17 00:03:13 $
*/
   
   public class FileDirContext extends BaseDirContext {
  @@ -854,15 +854,6 @@
*/
   protected File file(String name) {
   
  -/*
  -name = normalize(name);
  -if (name == null)
  -return (null);
  -
  - if (File.separatorChar == '\\')
  -name = name.replace('/', File.separatorChar);
  -*/
  -
   File file = new File(base, name);
   if (file.exists()  file.canRead()) {
   
  @@ -875,8 +866,9 @@
   if (canPath == null)
   return null;
   
  -if (!canPath.startsWith(absoluteBase))
  +if (!canPath.startsWith(absoluteBase)) {
   return null;
  +}
   
   // Windows only check
   if ((caseSensitive)  (File.separatorChar  == '\\')) {
  @@ -888,12 +880,12 @@
   canPath = normalize(canPath);
   if ((absoluteBase.length()  absPath.length()) 
(absoluteBase.length()  canPath.length())) {
  -absPath = absPath.substring(absoluteBase.length());
  +absPath = absPath.substring(absoluteBase.length() + 1);
   if ((canPath == null) || (absPath == null))
   return null;
   if (absPath.equals())
   absPath = /;
  -canPath = canPath.substring(absoluteBase.length());
  +canPath = canPath.substring(absoluteBase.length() + 1);
   if (canPath.equals())
   canPath = /;
   if (!canPath.equals(absPath))
  
  
  

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




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2002-03-14 Thread remm

remm02/03/14 12:55:47

  Modified:catalina/src/share/org/apache/naming/resources
FileDirContext.java
  Log:
  - Tighten up the file access so that there is no way to request a path above
the base, regarless of what path is passed. This is for robustness and peace of 
mind
only; I haven't sound any security vulnerabiltiy. Note: The performance impact
is minimal because of the cache.
  
  Revision  ChangesPath
  1.12  +23 -12
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- FileDirContext.java   27 Feb 2002 19:06:35 -  1.11
  +++ FileDirContext.java   14 Mar 2002 20:55:47 -  1.12
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.11 2002/02/27 19:06:35 remm Exp $
  - * $Revision: 1.11 $
  - * $Date: 2002/02/27 19:06:35 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.12 2002/03/14 20:55:47 remm Exp $
  + * $Revision: 1.12 $
  + * $Date: 2002/03/14 20:55:47 $
*
* 
*
  @@ -99,7 +99,7 @@
* Filesystem Directory Context implementation helper class.
*
* @author Remy Maucherat
  - * @version $Revision: 1.11 $ $Date: 2002/02/27 19:06:35 $
  + * @version $Revision: 1.12 $ $Date: 2002/03/14 20:55:47 $
*/
   
   public class FileDirContext extends BaseDirContext {
  @@ -186,7 +186,7 @@
if (!base.exists() || !base.isDirectory() || !base.canRead())
throw new IllegalArgumentException
(sm.getString(fileResources.base, docBase));
  -this.absoluteBase = normalize(base.getAbsolutePath());
  +this.absoluteBase = base.getAbsolutePath();
   super.setDocBase(docBase);
   
   }
  @@ -854,28 +854,38 @@
*/
   protected File file(String name) {
   
  +/*
   name = normalize(name);
   if (name == null)
   return (null);
   
if (File.separatorChar == '\\')
   name = name.replace('/', File.separatorChar);
  +*/
   
   File file = new File(base, name);
   if (file.exists()  file.canRead()) {
  +
  +// Check that this file belongs to our root path
  +String canPath = null;
  +try {
  +canPath = file.getCanonicalPath();
  +} catch (IOException e) {
  +}
  +if (canPath == null)
  +return null;
  +
  +if (!canPath.startsWith(absoluteBase))
  +return null;
  +
   // Windows only check
   if ((caseSensitive)  (File.separatorChar  == '\\')) {
   String fileAbsPath = file.getAbsolutePath();
   if (fileAbsPath.endsWith(.))
   fileAbsPath = fileAbsPath + /;
   String absPath = normalize(fileAbsPath);
  -String canPath = null;
  -try {
  -canPath = file.getCanonicalPath();
  -if (canPath != null)
  -canPath = normalize(canPath);
  -} catch (IOException e) {
  -}
  +if (canPath != null)
  +canPath = normalize(canPath);
   if ((absoluteBase.length()  absPath.length()) 
(absoluteBase.length()  canPath.length())) {
   absPath = absPath.substring(absoluteBase.length());
  @@ -890,6 +900,7 @@
   return null;
   }
   }
  +
   } else {
   return null;
   }
  
  
  

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




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2002-02-27 Thread remm

remm02/02/27 11:06:35

  Modified:catalina/src/share/org/apache/naming/resources
FileDirContext.java
  Log:
  - Add protection against going above the base path.
  
  Revision  ChangesPath
  1.11  +11 -6 
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- FileDirContext.java   27 Feb 2002 01:17:00 -  1.10
  +++ FileDirContext.java   27 Feb 2002 19:06:35 -  1.11
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.10 2002/02/27 01:17:00 craigmcc Exp $
  - * $Revision: 1.10 $
  - * $Date: 2002/02/27 01:17:00 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.11 2002/02/27 19:06:35 remm Exp $
  + * $Revision: 1.11 $
  + * $Date: 2002/02/27 19:06:35 $
*
* 
*
  @@ -99,7 +99,7 @@
* Filesystem Directory Context implementation helper class.
*
* @author Remy Maucherat
  - * @version $Revision: 1.10 $ $Date: 2002/02/27 01:17:00 $
  + * @version $Revision: 1.11 $ $Date: 2002/02/27 19:06:35 $
*/
   
   public class FileDirContext extends BaseDirContext {
  @@ -853,8 +853,13 @@
* @param name Normalized context-relative path (with leading '/')
*/
   protected File file(String name) {
  - if( File.separatorChar == '\\' )
  -name = name.replace('/',File.separatorChar);
  +
  +name = normalize(name);
  +if (name == null)
  +return (null);
  +
  + if (File.separatorChar == '\\')
  +name = name.replace('/', File.separatorChar);
   
   File file = new File(base, name);
   if (file.exists()  file.canRead()) {
  
  
  

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




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2001-11-02 Thread remm

remm01/11/02 18:13:27

  Modified:catalina/src/share/org/apache/naming/resources Tag:
tomcat_40_branch FileDirContext.java
  Log:
  - Port from HEAD:
- Fix security manager bug when using Windows. The base should be an
  absolute path (instead of a relative path), otherwise a security exception would
  be thrown by the case sensitivity checking code when trying to access the
  user.dir system property.
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.7.2.2   +10 -6 
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.7.2.1
  retrieving revision 1.7.2.2
  diff -u -r1.7.2.1 -r1.7.2.2
  --- FileDirContext.java   2001/10/04 19:29:12 1.7.2.1
  +++ FileDirContext.java   2001/11/03 02:13:27 1.7.2.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.7.2.1 2001/10/04 19:29:12 remm Exp $
  - * $Revision: 1.7.2.1 $
  - * $Date: 2001/10/04 19:29:12 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.7.2.2 2001/11/03 02:13:27 remm Exp $
  + * $Revision: 1.7.2.2 $
  + * $Date: 2001/11/03 02:13:27 $
*
* 
*
  @@ -99,7 +99,7 @@
* Filesystem Directory Context implementation helper class.
*
* @author Remy Maucherat
  - * @version $Revision: 1.7.2.1 $ $Date: 2001/10/04 19:29:12 $
  + * @version $Revision: 1.7.2.2 $ $Date: 2001/11/03 02:13:27 $
*/
   
   public class FileDirContext extends BaseDirContext {
  @@ -175,13 +175,17 @@
(sm.getString(resources.null));
   
// Calculate a File object referencing this document base directory
  - File base = new File(docBase);
  +base = new File(docBase);
  +try {
  +base = base.getCanonicalFile();
  +} catch (IOException e) {
  +// Ignore
  +}
   
// Validate that the document base is an existing directory
if (!base.exists() || !base.isDirectory() || !base.canRead())
throw new IllegalArgumentException
(sm.getString(fileResources.base, docBase));
  - this.base = base;
   this.absoluteBase = normalize(base.getAbsolutePath());
   super.setDocBase(docBase);
   
  
  
  

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




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2001-10-31 Thread remm

remm01/10/31 10:58:36

  Modified:catalina/src/share/org/apache/naming/resources
FileDirContext.java
  Log:
  - Fix security manager bug when using Windows. The base should be an
absolute path (instead of a relative path), otherwise a security exception would
be thrown by the case sensitivity checking code when trying to access the
user.dir system property.
  
  Revision  ChangesPath
  1.9   +10 -6 
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- FileDirContext.java   2001/09/28 02:22:27 1.8
  +++ FileDirContext.java   2001/10/31 18:58:36 1.9
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.8 2001/09/28 02:22:27 remm Exp $
  - * $Revision: 1.8 $
  - * $Date: 2001/09/28 02:22:27 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.9 2001/10/31 18:58:36 remm Exp $
  + * $Revision: 1.9 $
  + * $Date: 2001/10/31 18:58:36 $
*
* 
*
  @@ -99,7 +99,7 @@
* Filesystem Directory Context implementation helper class.
*
* @author Remy Maucherat
  - * @version $Revision: 1.8 $ $Date: 2001/09/28 02:22:27 $
  + * @version $Revision: 1.9 $ $Date: 2001/10/31 18:58:36 $
*/
   
   public class FileDirContext extends BaseDirContext {
  @@ -175,13 +175,17 @@
(sm.getString(resources.null));
   
// Calculate a File object referencing this document base directory
  - File base = new File(docBase);
  + base = new File(docBase);
  +try {
  +base = base.getCanonicalFile();
  +} catch (IOException e) {
  +// Ignore
  +}
   
// Validate that the document base is an existing directory
if (!base.exists() || !base.isDirectory() || !base.canRead())
throw new IllegalArgumentException
(sm.getString(fileResources.base, docBase));
  - this.base = base;
   this.absoluteBase = normalize(base.getAbsolutePath());
   super.setDocBase(docBase);
   
  
  
  

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




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2001-08-15 Thread craigmcc

craigmcc01/08/15 17:57:18

  Modified:catalina/src/share/org/apache/naming/resources
FileDirContext.java
  Log:
  Sort the directory listing returned when there is no welcome page (and
  directory listings are not suppressed) for webapps that are unpacked into
  a real directory.  Still have to look at how to do this for webapps that
  are executed directly from a WAR.
  
  Revision  ChangesPath
  1.7   +6 -4  
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- FileDirContext.java   2001/07/23 06:40:46 1.6
  +++ FileDirContext.java   2001/08/16 00:57:18 1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.6 2001/07/23 06:40:46 remm Exp $
  - * $Revision: 1.6 $
  - * $Date: 2001/07/23 06:40:46 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.7 2001/08/16 00:57:18 craigmcc Exp $
  + * $Revision: 1.7 $
  + * $Date: 2001/08/16 00:57:18 $
*
* 
*
  @@ -64,6 +64,7 @@
   
   package org.apache.naming.resources;
   
  +import java.util.Arrays;
   import java.util.Hashtable;
   import java.util.Vector;
   import java.util.Date;
  @@ -98,7 +99,7 @@
* Filesystem Directory Context implementation helper class.
*
* @author Remy Maucherat
  - * @version $Revision: 1.6 $ $Date: 2001/07/23 06:40:46 $
  + * @version $Revision: 1.7 $ $Date: 2001/08/16 00:57:18 $
*/
   
   public class FileDirContext extends BaseDirContext {
  @@ -896,6 +897,7 @@
   if (!file.isDirectory())
   return entries;
   String[] names = file.list();
  +Arrays.sort(names); // Sort alphabetically
   if (names == null)
   return entries;
   NamingEntry entry = null;
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2001-06-22 Thread glenn

glenn   01/06/22 13:20:54

  Modified:catalina/src/share/org/apache/naming/resources
FileDirContext.java
  Log:
  Fix path for windows file separator
  
  Revision  ChangesPath
  1.4   +6 -5  
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- FileDirContext.java   2001/03/31 03:00:41 1.3
  +++ FileDirContext.java   2001/06/22 20:20:54 1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.3 2001/03/31 03:00:41 remm Exp $
  - * $Revision: 1.3 $
  - * $Date: 2001/03/31 03:00:41 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.4 2001/06/22 20:20:54 glenn Exp $
  + * $Revision: 1.4 $
  + * $Date: 2001/06/22 20:20:54 $
*
* 
*
  @@ -98,7 +98,7 @@
* Filesystem Directory Context implementation helper class.
*
* @author Remy Maucherat
  - * @version $Revision: 1.3 $ $Date: 2001/03/31 03:00:41 $
  + * @version $Revision: 1.4 $ $Date: 2001/06/22 20:20:54 $
*/
   
   public class FileDirContext extends BaseDirContext {
  @@ -218,7 +218,6 @@
*/
   public Object lookup(String name)
   throws NamingException {
  -
   Object result = null;
   File file = file(name);
   
  @@ -843,6 +842,8 @@
* @param name Normalized context-relative path (with leading '/')
*/
   protected File file(String name) {
  + if( File.separatorChar == '\\' )
  +name = name.replace('/',File.separatorChar);
   
   File file = new File(base, name);
   if (file.exists()  file.canRead()) {
  
  
  



Re: cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2001-06-22 Thread Remy Maucherat

Quoting [EMAIL PROTECTED]:

 glenn   01/06/22 13:20:54
 
   Modified:catalina/src/share/org/apache/naming/resources
 FileDirContext.java
   Log:
   Fix path for windows file separator
   @@ -843,6 +842,8 @@
 * @param name Normalized context-relative path (with leading
 '/')
 */
protected File file(String name) {
   +   if( File.separatorChar == '\\' )
   +name = name.replace('/',File.separatorChar);

File file = new File(base, name);
if (file.exists()  file.canRead()) {

Is this really needed ?
I think this should be abstracted by the new File call.

Remy



Re: cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2001-06-22 Thread Glenn Nielsen

Remy Maucherat wrote:
 
 Quoting [EMAIL PROTECTED]:
 
  glenn   01/06/22 13:20:54
 
Modified:catalina/src/share/org/apache/naming/resources
  FileDirContext.java
Log:
Fix path for windows file separator
@@ -843,6 +842,8 @@
  * @param name Normalized context-relative path (with leading
  '/')
  */
 protected File file(String name) {
+   if( File.separatorChar == '\\' )
+name = name.replace('/',File.separatorChar);
 
 File file = new File(base, name);
 if (file.exists()  file.canRead()) {
 
 Is this really needed ?
 I think this should be abstracted by the new File call.
 

Yes, it was needed.  There were a few cases under windows when the
file separator was incorrect, causing FileDirContext to fail.  
As long as we make sure the file separator is correct, you can 
abstract it out any way you think works best.

Regards,

Glenn

--
Glenn Nielsen [EMAIL PROTECTED] | /* Spelin donut madder|
MOREnet System Programming   |  * if iz ina coment.  |
Missouri Research and Education Network  |  */   |
--



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources FileDirContext.java

2001-03-30 Thread remm

remm01/03/30 19:00:42

  Modified:catalina/src/share/org/apache/naming/resources
FileDirContext.java
  Log:
  - Fix problems under Windows where doing a request on /examples/.. would
return a 500. Should now return a 404 instead.
  
  Revision  ChangesPath
  1.3   +21 -15
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
  
  Index: FileDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- FileDirContext.java   2001/02/05 04:41:08 1.2
  +++ FileDirContext.java   2001/03/31 03:00:41 1.3
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.2 2001/02/05 04:41:08 remm Exp $
  - * $Revision: 1.2 $
  - * $Date: 2001/02/05 04:41:08 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
 1.3 2001/03/31 03:00:41 remm Exp $
  + * $Revision: 1.3 $
  + * $Date: 2001/03/31 03:00:41 $
*
* 
*
  @@ -98,7 +98,7 @@
* Filesystem Directory Context implementation helper class.
*
* @author Remy Maucherat
  - * @version $Revision: 1.2 $ $Date: 2001/02/05 04:41:08 $
  + * @version $Revision: 1.3 $ $Date: 2001/03/31 03:00:41 $
*/
   
   public class FileDirContext extends BaseDirContext {
  @@ -848,7 +848,10 @@
   if (file.exists()  file.canRead()) {
   // Windows only check
   if ((caseSensitive)  (File.separatorChar  == '\\')) {
  -String absPath = normalize(file.getAbsolutePath());
  +String fileAbsPath = file.getAbsolutePath();
  +if (fileAbsPath.endsWith("."))
  +fileAbsPath = fileAbsPath + "/";
  +String absPath = normalize(fileAbsPath);
   String canPath = null;
   try {
   canPath = file.getCanonicalPath();
  @@ -856,16 +859,19 @@
   canPath = normalize(canPath);
   } catch (IOException e) {
   }
  -absPath = absPath.substring(absoluteBase.length());
  -if ((canPath == null) || (absPath == null))
  -return null;
  -if (absPath.equals(""))
  -absPath = "/";
  -canPath = canPath.substring(absoluteBase.length());
  -if (canPath.equals(""))
  -canPath = "/";
  -if (!canPath.equals(absPath))
  -return null;
  +if ((absoluteBase.length()  absPath.length()) 
  + (absoluteBase.length()  canPath.length())) {
  +absPath = absPath.substring(absoluteBase.length());
  +if ((canPath == null) || (absPath == null))
  +return null;
  +if (absPath.equals(""))
  +absPath = "/";
  +canPath = canPath.substring(absoluteBase.length());
  +if (canPath.equals(""))
  +canPath = "/";
  +if (!canPath.equals(absPath))
  +return null;
  +}
   }
   } else {
   return null;