docs: @Override
      public void doGet(HttpServletRequest request,
              HttpServletResponse response)
              throws IOException, ServletException {
  
          super.doGet(request, response);
  
          //jsonp is specified when response is expected to go to javascript function.
          String jsonp = request.getParameter(HTTPClientInterface.JSONP);
          AuthenticationResult authResult = null;
          String target = request.getPathInfo();
          try {
              response.setContentType(JSON_CONTENT_TYPE);
              if (!HTTPClientInterface.validateJSONP(jsonp, (Request )request, response)) {
                  return;
              }
              response.setStatus(HttpServletResponse.SC_OK);
  
              //Requests require authentication.
              authResult = authenticate(request);
              if (!authResult.isAuthenticated()) {
                  response.getWriter().print(buildClientResponse(jsonp, ClientResponse.UNEXPECTED_FAILURE, authResult.m_message));
                  response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
                  return;
              }
              //Authenticated but has no permissions.
              if (!authResult.m_authUser.hasPermission(Permission.ADMIN)) {
                  response.getWriter().print(buildClientResponse(jsonp, ClientResponse.UNEXPECTED_FAILURE, "Permission denied"));
                  response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
                  return;
              }
  
              if (target != null && !target.endsWith("/")) { // the URI may or may not end with /
                  target += "/";
              }
              if (target == null) {
                  target = "/"; //Default.
              }
              //Authenticated and has ADMIN permission
              if (target.equals("/download/")) {
                  //Deployment xml is text/xml
                  response.setContentType("text/xml;charset=utf-8");
                  DeploymentType dt = CatalogUtil.shallowClusterAndPathsClone(this.getDeployment());
                  // reflect the actual number of cluster members
                  dt.getCluster().setHostcount(getCatalogContext().getClusterSettings().hostcount());
  
                  response.getWriter().write(CatalogUtil.getDeployment(dt, true));
              } else if (target.startsWith("/users/")) { // username may be passed in after the / (not as a param)
                  if (request.getMethod().equalsIgnoreCase("POST")) {
                      handleUpdateUser(jsonp, target, request, response, authResult);
                  } else if (request.getMethod().equalsIgnoreCase("PUT")) {
                      handleCreateUser(jsonp, target, request, response, authResult);
                  } else if (request.getMethod().equalsIgnoreCase("DELETE")) {
                      handleRemoveUser(jsonp, target, request, response, authResult);
                  } else {
                      handleGetUsers(jsonp, target, request, response);
                  }
              } else if (target.equals("/export/types/")) {
                  handleGetExportTypes(jsonp, response);
              } else if (target.equals("/")) { // just deployment
                  if (request.getMethod().equalsIgnoreCase("POST")) {
                      handleUpdateDeployment(jsonp, request, response, authResult);
                  } else {
                      //non POST
                      response.setCharacterEncoding("UTF-8");
                      if (jsonp != null) {
                          response.getWriter().write(jsonp + "(");
                      }
                      DeploymentType dt = getDeployment();
                      // reflect the actual number of cluster members
                      dt.getCluster().setHostcount(getCatalogContext().getClusterSettings().hostcount());
  
                      m_mapper.writeValue(response.getWriter(), dt);
                      if (jsonp != null) {
                          response.getWriter().write(")");
                      }
                  }
              } else {
                  response.getWriter().print(buildClientResponse(jsonp, ClientResponse.UNEXPECTED_FAILURE, "Resource not found"));
                  response.setStatus(HttpServletResponse.SC_NOT_FOUND);
              }
          } catch (Exception ex) {
              m_log.info("Not servicing url: " + target + " Details: " + ex.getMessage(), ex);
          }
      }