You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2001/01/25 19:36:47 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core StandardContext.java StandardContextValve.java
remm 01/01/25 10:36:46
Modified: catalina/src/share/org/apache/catalina/core
StandardContext.java StandardContextValve.java
Log:
- Security fix : A webapp could access the naming environment of another webapp by using
the ContextBindings.getContext(String name) call. Since the resources are
bound in the naming environment, that would have allowed it to access any
static resource or class repository inside another webapp, just by knowing
its name. This function is now package private.
- The implementation wasn't virtual hosting ready. Fixed.
- Class loader binding was broken. Fixed.
- Catalina will now use class loader binding instead of thread binding, which
saves a few calls during each request.
Revision Changes Path
1.37 +14 -11 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java
Index: StandardContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- StandardContext.java 2001/01/24 02:33:01 1.36
+++ StandardContext.java 2001/01/25 18:36:22 1.37
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v 1.36 2001/01/24 02:33:01 remm Exp $
- * $Revision: 1.36 $
- * $Date: 2001/01/24 02:33:01 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v 1.37 2001/01/25 18:36:22 remm Exp $
+ * $Revision: 1.37 $
+ * $Date: 2001/01/25 18:36:22 $
*
* ====================================================================
*
@@ -138,7 +138,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
- * @version $Revision: 1.36 $ $Date: 2001/01/24 02:33:01 $
+ * @version $Revision: 1.37 $ $Date: 2001/01/25 18:36:22 $
*/
public class StandardContext
@@ -3190,12 +3190,12 @@
Hashtable contextEnv = new Hashtable();
javax.naming.Context namingContext =
new NamingContext(contextEnv, getName());
- ContextAccessController.setSecurityToken(getName(), this);
- ContextBindings.bindContext(getName(), namingContext, this);
- ContextBindings.bindThread(getName(), this);
+ ContextAccessController.setSecurityToken(this, this);
+ ContextBindings.bindContext(this, namingContext, this);
+ ContextBindings.bindThread(this, this);
// Setting the context in read/write mode
- ContextAccessController.setWritable(getName(), this);
+ ContextAccessController.setWritable(this, this);
// Creating the comp subcontext
javax.naming.Context compCtx = namingContext.createSubcontext("comp");
@@ -3326,11 +3326,14 @@
log(sm.getString("standardContext.bindFailed", e));
}
-
// Setting the context in read only mode
- ContextAccessController.setReadOnly(getName());
+ ContextAccessController.setReadOnly(this);
+
+ ContextBindings.unbindThread(this, this);
- ContextBindings.unbindThread(getName(), this);
+ // Binding the naming context to the class loader
+ ContextBindings.bindClassLoader
+ (this, this, getLoader().getClassLoader());
}
1.7 +10 -6 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContextValve.java
Index: StandardContextValve.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContextValve.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- StandardContextValve.java 2001/01/23 02:51:15 1.6
+++ StandardContextValve.java 2001/01/25 18:36:26 1.7
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContextValve.java,v 1.6 2001/01/23 02:51:15 craigmcc Exp $
- * $Revision: 1.6 $
- * $Date: 2001/01/23 02:51:15 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContextValve.java,v 1.7 2001/01/25 18:36:26 remm Exp $
+ * $Revision: 1.7 $
+ * $Date: 2001/01/25 18:36:26 $
*
* ====================================================================
*
@@ -89,7 +89,7 @@
* when processing HTTP requests.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.6 $ $Date: 2001/01/23 02:51:15 $
+ * @version $Revision: 1.7 $ $Date: 2001/01/25 18:36:26 $
*/
final class StandardContextValve
@@ -187,21 +187,25 @@
// Ask this Wrapper to process this Request
response.setContext(context);
+/*
if (context.isUseNaming()) {
try {
// Bind the thread to the context
- ContextBindings.bindThread(context.getName(), context);
+ ContextBindings.bindThread(context, context);
} catch (NamingException e) {
e.printStackTrace();
}
}
+*/
wrapper.invoke(request, response);
+/*
if (context.isUseNaming()) {
// Unbind the thread to the context
- ContextBindings.unbindThread(context.getName(), context);
+ ContextBindings.unbindThread(context, context);
}
+*/
}