in src/main/java/org/apache/sling/servlets/resolver/internal/console/WebConsolePlugin.java [119:187]
protected void service(final HttpServletRequest request, final HttpServletResponse response)
throws ServletException, IOException {
final String url = request.getParameter(PARAMETER_URL);
String method = request.getParameter(PARAMETER_METHOD);
if (method == null || method.isBlank()) {
method = "GET";
}
String requestURI = request.getRequestURI();
try (final ResourceResolver resourceResolver = resourceResolverFactory.getServiceResourceResolver(
Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, (Object) SERVICE_USER_CONSOLE))) {
final PrintWriter pw = response.getWriter();
final RequestPathInfo requestPathInfo = getRequestPathInfo(url, resourceResolver);
if (requestURI.endsWith("json")) {
pw.println("{");
if (url != null && !url.isBlank()) {
printJSONDecomposedURLElement(pw, requestPathInfo);
}
if (requestPathInfo.getResourcePath() != null
&& !requestPathInfo.getResourcePath().isBlank()) {
printJSONCandidatesElement(pw, resourceResolver, requestPathInfo, method);
}
pw.printf(" \"method\" : \"%s\"%n", Encode.forJavaScript(method));
pw.print("}");
response.setContentType("application/json");
} else {
printHTMLInputElements(pw, url);
if (url != null && !url.isBlank()) {
printHTMLDecomposedURLElement(pw, requestPathInfo);
}
if (requestPathInfo.getResourcePath() != null
&& !requestPathInfo.getResourcePath().isBlank()) {
Resource resource = resourceResolver.resolve(requestPathInfo.getResourcePath());
final Collection<Resource> servlets =
resolveServlets(resourceResolver, requestPathInfo, resource, method);
tr(pw);
tdLabel(pw, "Candidates");
tdContent(pw);
if (servlets == null || servlets.isEmpty()) {
pw.println("Could not find a suitable servlet for this request!");
} else {
// check for non-existing resources
if (ResourceUtil.isNonExistingResource(resource)) {
pw.println("The resource given by path '");
pw.println(Encode.forHtml(resource.getPath()));
pw.println("' does not exist. Therefore no resource type could be determined!<br/>");
}
pw.print("Candidate servlets and scripts in order of preference for method ");
pw.print(Encode.forHtml(method));
pw.println(":<br/>");
pw.println("<ol class='servlets'>");
outputHTMLServlets(pw, servlets.iterator());
pw.println("</ol>");
}
closeTd(pw);
closeTr(pw);
}
pw.println("</table>");
pw.print("</form>");
}
} catch (final LoginException e) {
throw new ServletException(e);
}
}