in src/main/java/org/apache/sling/serviceuser/webconsole/impl/ServiceUserWebConsolePlugin.java [612:696]
private void printServiceUserDetails(HttpServletRequest request, PrintWriter pw)
throws RepositoryException, LoginException {
String name = getParameter(request, PN_USER, "");
tableStart(pw, "Details for " + name, 2);
ResourceResolver resolver = null;
try {
resolver = getResourceResolver(request);
List<String> affectedPaths = new ArrayList<>();
td(pw, "Service User Name");
td(pw, name);
tableRows(pw);
td(pw, "User Path");
Session session = resolver.adaptTo(Session.class);
UserManager userManager = AccessControlUtil.getUserManager(session);
if (userManager.getAuthorizable(name) != null) {
Authorizable user = userManager.getAuthorizable(name);
td(pw, user.getPath());
affectedPaths.add(user.getPath());
}
tableRows(pw);
String[] mappings = findMappings(name);
td(pw, "Mappings");
td(pw, mappings);
tableRows(pw);
td(pw, "OSGi Configurations");
td(pw, findConfigurations(resolver, name, affectedPaths));
tableRows(pw);
td(pw, "ACLs");
td(pw, findACLs(resolver, name, affectedPaths));
tableEnd(pw);
pw.write(BR);
pw.write("<h3>Example Filter</h3>");
pw.write(BR);
pw.write("<pre><code><workspaceFilter version=\"1.0\"><br/>");
for (String affectedPath : affectedPaths) {
pw.write(" <filter root=\"" + affectedPath + "\" /><br/>");
}
pw.write("</workspaceFilter\"></code></pre>");
pw.write(BR);
pw.write("<h3>Use Example(s)</h3>");
pw.write(BR);
pw.write("<pre><code>");
boolean includeNonSubService = false;
for (String mapping : mappings) {
if (mapping.contains(":")) {
String subService = StringUtils.substringAfter(mapping, ":");
pw.write("// Example using Sub Service " + subService
+ "<br/>ResourceResolver resolver = resolverFactory.getServiceResourceResolver(new HashMap<String, Object>() {<br/> private static final long serialVersionUID = 1L;<br/> {<br/> put(ResourceResolverFactory.SUBSERVICE,\""
+ subService + "\");<br/> }<br/>});<br/><br/>");
} else {
includeNonSubService = true;
}
}
if (includeNonSubService) {
pw.write(
"// Example using bundle authentication<br/>ResourceResolver resolver = resolverFactory.getServiceResourceResolver(null);");
}
pw.write("</code></pre>");
} finally {
if (this.needsAdministrativeResolver(request) && resolver != null) {
resolver.close();
}
}
}