protected ModelAndView doHandle()

in server/src/org/jetbrains/teamcity/widgets/BasePageContentController.java [51:74]


  protected ModelAndView doHandle(@NotNull final HttpServletRequest request,
                                  @NotNull final HttpServletResponse response) throws Exception {


    String requestedResource = WebUtil.getPathFromUrl(WebUtil.getOriginalPathWithoutContext(request))
            .replace(pagesContentUrlBase, "");

    try {
      String requestedResourceBasePath = getResourceBaseFolder();
      File file = getRequestedFile(requestedResource, requestedResourceBasePath);
      boolean legal = isLegalPath(file, new File(requestedResourceBasePath));
      if (!legal) {
        throw new IllegalArgumentException("Requested resource doesn't exist under the resource base folder.");
      }
      response.setContentType(WebUtil.getMimeType(request, file.getName()));
      writeResourceContent(request, response, file);
    } catch (Exception e) {
      LOG.warn("Failed to retrieve file. Error: " + e.getMessage(), e);
      response.setContentType("text/plain");
      response.getWriter().write("ERROR: Content for Widgets plugin was not found. " +
              "Requested resource: " + requestedResource + ", error: " + e.getMessage());
    }
    return null;
  }