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;
}