You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by gl...@apache.org on 2002/08/29 16:01:23 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets HTMLManagerServlet.java LocalStrings.properties ManagerServlet.java
glenn 2002/08/29 07:01:21
Modified: catalina/src/share/org/apache/catalina/servlets
HTMLManagerServlet.java LocalStrings.properties
ManagerServlet.java
Log:
Prevent manager from trying to reload, remove, stop, or undeploy itself
Revision Changes Path
1.9 +19 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/HTMLManagerServlet.java
Index: HTMLManagerServlet.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/HTMLManagerServlet.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- HTMLManagerServlet.java 13 Jun 2002 14:58:01 -0000 1.8
+++ HTMLManagerServlet.java 29 Aug 2002 14:01:19 -0000 1.9
@@ -258,7 +258,10 @@
args[2] = appsStop;
args[3] = appsReload;
args[4] = appsRemove;
- if (context.getAvailable()) {
+ if (context.getPath().equals(this.context.getPath())) {
+ writer.print(MessageFormat.format(
+ MANAGER_APP_ROW_BUTTON_SECTION, args));
+ } else if (context.getAvailable()) {
writer.print(MessageFormat.format(
STARTED_APPS_ROW_BUTTON_SECTION, args));
} else {
@@ -513,6 +516,17 @@
" <td class=\"row-center\"><small>{2}</small></td> \n" +
" <td class=\"row-center\">" +
"<small><a href=\"sessions?path={0}\">{3}</a></small></td> \n";
+
+ private static final String MANAGER_APP_ROW_BUTTON_SECTION =
+ " <td class=\"row-left\"> \n" +
+ " <small> \n" +
+ " {1} \n" +
+ " {2} \n" +
+ " {3} \n" +
+ " {4} \n" +
+ " </small> \n" +
+ " </td> \n" +
+ "</tr> \n";
private static final String STARTED_APPS_ROW_BUTTON_SECTION =
" <td class=\"row-left\"> \n" +
1.19 +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.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- LocalStrings.properties 13 Jun 2002 14:58:01 -0000 1.18
+++ LocalStrings.properties 29 Aug 2002 14:01:19 -0000 1.19
@@ -56,6 +56,7 @@
{0}
managerServlet.noRename=FAIL - Cannot deploy uploaded WAR for path {0}
managerServlet.noRole=FAIL - User does not possess role {0}
+managerServlet.noSelf=FAIL - The manager can not reload, remove, stop, or undeploy itself
managerServlet.noWrapper=Container has not called setWrapper() for this
servlet
managerServlet.reloaded=OK - Reloaded application at context path {0}
1.25 +24 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/ManagerServlet.java
Index: ManagerServlet.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/ManagerServlet.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- ManagerServlet.java 31 May 2002 21:08:03 -0000 1.24
+++ ManagerServlet.java 29 Aug 2002 14:01:19 -0000 1.25
@@ -728,6 +728,11 @@
writer.println(sm.getString("managerServlet.noReload", displayPath));
return;
}
+ // It isn't possible for the manager to reload itself
+ if (context.getPath().equals(this.context.getPath())) {
+ writer.println(sm.getString("managerServlet.noSelf"));
+ return;
+ }
context.reload();
writer.println(sm.getString("managerServlet.reloaded", displayPath));
} catch (Throwable t) {
@@ -764,6 +769,11 @@
writer.println(sm.getString("managerServlet.noContext", displayPath));
return;
}
+ // It isn't possible for the manager to remove itself
+ if (context.getPath().equals(this.context.getPath())) {
+ writer.println(sm.getString("managerServlet.noSelf"));
+ return;
+ }
deployer.remove(path);
writer.println(sm.getString("managerServlet.removed", displayPath));
} catch (Throwable t) {
@@ -1041,6 +1051,11 @@
writer.println(sm.getString("managerServlet.noContext", displayPath));
return;
}
+ // It isn't possible for the manager to stop itself
+ if (context.getPath().equals(this.context.getPath())) {
+ writer.println(sm.getString("managerServlet.noSelf"));
+ return;
+ }
deployer.stop(path);
writer.println(sm.getString("managerServlet.stopped", displayPath));
} catch (Throwable t) {
@@ -1112,6 +1127,11 @@
// Remove this web application and its associated docBase
if (debug >= 2) {
log("Undeploying document base " + docBasePath);
+ }
+ // It isn't possible for the manager to undeploy itself
+ if (context.getPath().equals(this.context.getPath())) {
+ writer.println(sm.getString("managerServlet.noSelf"));
+ return;
}
deployer.remove(path);
if (docBaseDir.isDirectory()) {
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>