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" +
  +        "  &nbsp;{1}&nbsp; \n" +
  +        "  &nbsp;{2}&nbsp; \n" +
  +        "  &nbsp;{3}&nbsp; \n" +
  +        "  &nbsp;{4}&nbsp; \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>