private void printServiceUserDetails()

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>&lt;workspaceFilter version=\"1.0\"&gt;<br/>");
            for (String affectedPath : affectedPaths) {
                pw.write("  &lt;filter root=\"" + affectedPath + "\" /&gt;<br/>");
            }
            pw.write("&lt;/workspaceFilter\"&gt</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();
            }
        }
    }