Author: markt
Date: Sat Jan 31 08:42:18 2009
New Revision: 739524
URL: http://svn.apache.org/viewvc?rev=739524&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=46261
%2F in a context path should be interpreted literally, not as /. That is what #
is for.
Modified:
tomcat/tc6.0.x/trunk/ (props changed)
tomcat/tc6.0.x/trunk/STATUS.txt
tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java
tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
Propchange: tomcat/tc6.0.x/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Jan 31 08:42:18 2009
@@ -1 +1 @@
-/tomcat/trunk:601180,606992,612607,630314,652744,653247,673796,673820,683982,684001,684081,684234,684269-684270,685177,687503,687645,690781,691392,691805,692748,695053,695311,696780,696782,698012,698227,698236,698613,699427,699634,701355,709294,709811,709816,710063,710066,710125,710205,711126,711600,712461,712467,718360,719602,719626,719628,720046,720069,721040,723404,723738,726052,727303,728032,728768,728947,729057,729567,729569,729809,729815,729934,730250,732859
+/tomcat/trunk:601180,606992,612607,630314,652744,653247,673796,673820,683982,684001,684081,684234,684269-684270,685177,687503,687645,690781,691392,691805,692748,695053,695311,696780,696782,698012,698227,698236,698613,699427,699634,701355,709294,709811,709816,710063,710066,710125,710205,711126,711600,712461,712467,718360,719602,719626,719628,720046,720069,721040,723404,723738,726052,727303,728032,728768,728947,729057,729567,729569,729571,729809,729815,729934,730250,732859
Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=739524&r1=739523&r2=739524&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Sat Jan 31 08:42:18 2009
@@ -126,13 +126,6 @@
0: funkman - ditto
-1:
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=46261
- %2F in a context path should be interpreted literally, not as /. That is what
- # is for.
- http://svn.apache.org/viewvc?rev=729571&view=rev
- +1: markt, fhanik, remm
- -1:
-
* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=36923
If EL is disabled, treat it as template text
http://svn.apache.org/viewvc?rev=730590&view=rev
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java?rev=739524&r1=739523&r2=739524&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java Sat
Jan 31 08:42:18 2009
@@ -1484,7 +1484,7 @@
*/
public void setPath(String path) {
// XXX Use host in name
- setName(RequestUtil.URLDecode(path));
+ setName(path);
}
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java?rev=739524&r1=739523&r2=739524&view=diff
==============================================================================
---
tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
(original)
+++
tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
Sat Jan 31 08:42:18 2009
@@ -45,6 +45,7 @@
import org.apache.catalina.manager.util.SessionUtils;
import org.apache.catalina.util.RequestUtil;
import org.apache.catalina.util.ServerInfo;
+import org.apache.catalina.util.URLEncoder;
import org.apache.tomcat.util.http.fileupload.DiskFileUpload;
import org.apache.tomcat.util.http.fileupload.FileItem;
@@ -73,11 +74,17 @@
public final class HTMLManagerServlet extends ManagerServlet {
+ protected static final URLEncoder URL_ENCODER;
protected static final String APPLICATION_MESSAGE = "message";
protected static final String APPLICATION_ERROR = "error";
protected String sessionsListJspPath = "/sessionsList.jsp";
protected String sessionDetailJspPath = "/sessionDetail.jsp";
+ static {
+ URL_ENCODER = new URLEncoder();
+ // '/' should not be encoded in context paths
+ URL_ENCODER.addSafeCharacter('/');
+ }
// --------------------------------------------------------- Public Methods
/**
@@ -359,7 +366,7 @@
String displayPath = contextPaths[i];
sortedContextPathsMap.put(displayPath, contextPaths[i]);
}
-
+
String appsStart = sm.getString("htmlManagerServlet.appsStart");
String appsStop = sm.getString("htmlManagerServlet.appsStop");
String appsReload = sm.getString("htmlManagerServlet.appsReload");
@@ -396,24 +403,25 @@
isDeployed = false;
}
- args = new Object[6];
- args[0] = displayPath;
- args[1] = context.getDisplayName();
- if (args[1] == null) {
- args[1] = " ";
+ args = new Object[7];
+ args[0] = URL_ENCODER.encode(displayPath);
+ args[1] = displayPath;
+ args[2] = context.getDisplayName();
+ if (args[2] == null) {
+ args[2] = " ";
}
- args[2] = new Boolean(context.getAvailable());
- args[3] = response.encodeURL
+ args[3] = new Boolean(context.getAvailable());
+ args[4] = response.encodeURL
(request.getContextPath() +
- "/html/sessions?path=" + displayPath);
+ "/html/sessions?path=" + URL_ENCODER.encode(displayPath));
if (context.getManager() != null) {
- args[4] = new Integer
+ args[5] = new Integer
(context.getManager().getActiveSessions());
} else {
- args[4] = new Integer(0);
+ args[5] = new Integer(0);
}
- args[5] = highlightColor;
+ args[6] = highlightColor;
writer.print
(MessageFormat.format(APPS_ROW_DETAILS_SECTION, args));
@@ -421,24 +429,24 @@
args = new Object[14];
args[0] = response.encodeURL
(request.getContextPath() +
- "/html/start?path=" + displayPath);
+ "/html/start?path=" + URL_ENCODER.encode(displayPath));
args[1] = appsStart;
args[2] = response.encodeURL
(request.getContextPath() +
- "/html/stop?path=" + displayPath);
+ "/html/stop?path=" + URL_ENCODER.encode(displayPath));
args[3] = appsStop;
args[4] = response.encodeURL
(request.getContextPath() +
- "/html/reload?path=" + displayPath);
+ "/html/reload?path=" + URL_ENCODER.encode(displayPath));
args[5] = appsReload;
args[6] = response.encodeURL
(request.getContextPath() +
- "/html/undeploy?path=" + displayPath);
+ "/html/undeploy?path=" + URL_ENCODER.encode(displayPath));
args[7] = appsUndeploy;
args[8] = response.encodeURL
(request.getContextPath() +
- "/html/expire?path=" + displayPath);
+ "/html/expire?path=" + URL_ENCODER.encode(displayPath));
args[9] = appsExpire;
args[10] = sm.getString("htmlManagerServlet.expire.explain");
Manager manager = context.getManager();
@@ -968,12 +976,12 @@
private static final String APPS_ROW_DETAILS_SECTION =
"<tr>\n" +
- " <td class=\"row-left\" bgcolor=\"{5}\" rowspan=\"2\"><small><a
href=\"{0}\">{0}</a>" +
+ " <td class=\"row-left\" bgcolor=\"{6}\" rowspan=\"2\"><small><a
href=\"{0}\">{1}</a>" +
"</small></td>\n" +
- " <td class=\"row-left\" bgcolor=\"{5}\"
rowspan=\"2\"><small>{1}</small></td>\n" +
- " <td class=\"row-center\" bgcolor=\"{5}\"
rowspan=\"2\"><small>{2}</small></td>\n" +
- " <td class=\"row-center\" bgcolor=\"{5}\" rowspan=\"2\">" +
- "<small><a href=\"{3}\" target=\"_new\">{4}</a></small></td>\n";
+ " <td class=\"row-left\" bgcolor=\"{6}\"
rowspan=\"2\"><small>{2}</small></td>\n" +
+ " <td class=\"row-center\" bgcolor=\"{6}\"
rowspan=\"2\"><small>{3}</small></td>\n" +
+ " <td class=\"row-center\" bgcolor=\"{6}\" rowspan=\"2\">" +
+ "<small><a href=\"{4}\" target=\"_new\">{5}</a></small></td>\n";
private static final String MANAGER_APP_ROW_BUTTON_SECTION =
" <td class=\"row-left\" bgcolor=\"{13}\">\n" +
Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=739524&r1=739523&r2=739524&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Sat Jan 31 08:42:18 2009
@@ -236,6 +236,10 @@
standard endorsed mechanism. (markt)
</fix>
<fix>
+ <bug>46261</bug>: Treat %2F in a context name literally rather than
+ converting it (inconsistently) to '/' - that is what '#' is for.
(markt)
+ </fix>
+ <fix>
<bug>46298</bug>: Throw an SQLException with a useful message rather
than a NPE if the URL for the JDBCRealm is invalid. Based on a patch by
Owen Jacobson. (markt)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]