in src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessGetServlet.java [71:109]
protected void doGet(SlingHttpServletRequest request,
SlingHttpServletResponse response) throws ServletException,
IOException {
try {
Session session = request.getResourceResolver().adaptTo(Session.class);
String resourcePath = getItemPath(request);
String principalId = request.getParameter("pid");
JsonObject jsonObj = internalJson(session, resourcePath, principalId);
response.setContentType("application/json");
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
boolean isTidy = false;
final String[] selectors = request.getRequestPathInfo().getSelectors();
if (selectors.length > 0) {
for (final String level : selectors) {
if("tidy".equals(level)) {
isTidy = true;
break;
}
}
}
Map<String, Object> options = new HashMap<>();
options.put(JsonGenerator.PRETTY_PRINTING, isTidy);
try (JsonGenerator generator = Json.createGeneratorFactory(options).createGenerator(response.getWriter())) {
generator.write(jsonObj).flush();
}
} catch (AccessDeniedException ade) {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
} catch (ResourceNotFoundException rnfe) {
response.sendError(HttpServletResponse.SC_NOT_FOUND, rnfe.getMessage());
} catch (Exception throwable) {
throw new ServletException(String.format("Exception while handling GET %s with %s",
request.getResource().getPath(), getClass().getName()),
throwable);
}
}