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: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>