CugSupportWebConsolePlugin.java 5.28 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  javax.servlet.ServletException
 *  javax.servlet.http.HttpServlet
 *  javax.servlet.http.HttpServletRequest
 *  javax.servlet.http.HttpServletResponse
 *  org.apache.sling.api.request.ResponseUtil
 *  org.osgi.framework.BundleContext
 *  org.osgi.framework.ServiceRegistration
 */
package com.day.cq.auth.impl.cug;

import com.day.cq.auth.impl.cug.CugRoot;
import com.day.cq.auth.impl.cug.CugSupportImpl;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Dictionary;
import java.util.Hashtable;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.sling.api.request.ResponseUtil;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;

class CugSupportWebConsolePlugin
extends HttpServlet {
    private static final long serialVersionUID = 1;
    private static final String LABEL = "cug";
    private static final String TITLE = "Closed User Groups (CUG)";
    private final CugSupportImpl cugSupport;
    private final ServiceRegistration registration;

    CugSupportWebConsolePlugin(BundleContext bundleContext, CugSupportImpl cugSupport) {
        Hashtable<String, String> props = new Hashtable<String, String>();
        props.put("service.description", "Day CQ Closed User Group (CUG) Support WebConsole Plugin");
        props.put("service.vendor", "Day Management AG");
        props.put("felix.webconsole.label", "cug");
        props.put("felix.webconsole.title", "Closed User Groups (CUG)");
        props.put("felix.webconsole.configprinter.modes", (String)new String[]{"txt", "zip"});
        this.registration = bundleContext.registerService(new String[]{"javax.servlet.Servlet"}, (Object)this, props);
        this.cugSupport = cugSupport;
    }

    void dispose() {
        if (this.registration != null) {
            this.registration.unregister();
        }
    }

    protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        PrintWriter pw = res.getWriter();
        String[] exemptedPrincipals = this.cugSupport.getExemptedPrincipals();
        CugRoot[] cugRoots = this.cugSupport.getCugRoots();
        Object[] arrobject = new Object[3];
        arrobject[0] = this.cugSupport.isEnabled() ? "en" : "dis";
        arrobject[1] = cugRoots.length;
        arrobject[2] = exemptedPrincipals.length;
        pw.printf("<p class='statline ui-state-highlight'>Closed User Groups support is %sabled (%d configured CUG Root(s), %d exempted Principal(s))</p>%n", arrobject);
        pw.println("<div class='ui-widget-header ui-corner-top buttonGroup' style='text-align: left; padding-left: 1em'>");
        pw.println("CUG Roots");
        pw.println("</div>");
        pw.println("<table class='nicetable ui-widget'>");
        pw.println("<tbody>");
        pw.println("<tr><th>Root</th><th>Login Form</th><th>Principals</th><th>Realm</th></tr>");
        for (CugRoot cugRoot : cugRoots) {
            Object[] arrobject2 = new Object[4];
            arrobject2[0] = ResponseUtil.escapeXml((String)cugRoot.getRoot());
            arrobject2[1] = cugRoot.getLoginPath() == null ? "[Default]" : ResponseUtil.escapeXml((String)cugRoot.getLoginPath());
            arrobject2[2] = cugRoot.getPrincipals() == null ? "-" : Arrays.asList(cugRoot.getPrincipals());
            arrobject2[3] = cugRoot.getRealm() == null ? "-" : ResponseUtil.escapeXml((String)cugRoot.getRealm());
            pw.printf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>%n", arrobject2);
        }
        pw.println("</tbody>");
        pw.println("</table>");
        pw.println("<p>&nbsp;</p>");
        pw.println("<div class='ui-widget-header ui-corner-top buttonGroup' style='text-align: left; padding-left: 1em'>");
        pw.println("Exempted Principals");
        pw.println("</div>");
        pw.println("<table class='nicetable ui-widget'>");
        pw.println("<tbody>");
        for (CugRoot ep : exemptedPrincipals) {
            pw.printf("<tr><td>%s</td></tr>%n", ep);
        }
        pw.println("</tbody>");
        pw.println("</table>");
    }

    public void printConfiguration(PrintWriter pw, String mode) {
        pw.println("Configuration");
        pw.printf("  Enabled: %s%n", this.cugSupport.isEnabled());
        pw.printf("  Exempted Principals: %s%n", Arrays.asList(this.cugSupport.getExemptedPrincipals()));
        pw.println();
        pw.println("Closed User Group Roots");
        for (CugRoot cugRoot : this.cugSupport.getCugRoots()) {
            pw.printf("  %s%n", cugRoot.getRoot());
            Object[] arrobject = new Object[1];
            arrobject[0] = cugRoot.getLoginPath() == null ? "[Default]" : cugRoot.getLoginPath();
            pw.printf("    Login Form: %s%n", arrobject);
            Object[] arrobject2 = new Object[1];
            arrobject2[0] = cugRoot.getPrincipals() == null ? "-" : Arrays.asList(cugRoot.getPrincipals());
            pw.printf("    Principals: %s%n", arrobject2);
            Object[] arrobject3 = new Object[1];
            arrobject3[0] = cugRoot.getRealm() == null ? "-" : cugRoot.getRealm();
            pw.printf("    Realm: %s%n", arrobject3);
        }
    }
}