You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2017/03/27 08:15:58 UTC

svn commit: r1788844 - in /sling/trunk/bundles/servlets/get: ./ src/main/java/org/apache/sling/servlets/get/impl/impl/info/

Author: cziegeler
Date: Mon Mar 27 08:15:58 2017
New Revision: 1788844

URL: http://svn.apache.org/viewvc?rev=1788844&view=rev
Log:
SLING-6715 : SlingInfoServlet is overengineered

Removed:
    sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/impl/info/SessionInfoProvider.java
    sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/impl/info/SlingInfoProvider.java
Modified:
    sling/trunk/bundles/servlets/get/pom.xml
    sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/impl/info/SlingInfoServlet.java

Modified: sling/trunk/bundles/servlets/get/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/get/pom.xml?rev=1788844&r1=1788843&r2=1788844&view=diff
==============================================================================
--- sling/trunk/bundles/servlets/get/pom.xml (original)
+++ sling/trunk/bundles/servlets/get/pom.xml Mon Mar 27 08:15:58 2017
@@ -86,7 +86,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.api</artifactId>
-            <version>2.0.8</version>
+            <version>2.7.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>

Modified: sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/impl/info/SlingInfoServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/impl/info/SlingInfoServlet.java?rev=1788844&r1=1788843&r2=1788844&view=diff
==============================================================================
--- sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/impl/info/SlingInfoServlet.java (original)
+++ sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/impl/info/SlingInfoServlet.java Mon Mar 27 08:15:58 2017
@@ -29,10 +29,11 @@ import javax.servlet.http.HttpServletRes
 
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.request.ResponseUtil;
+import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
 import org.apache.sling.commons.json.JSONException;
 import org.apache.sling.commons.json.io.JSONWriter;
-import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 
 /**
@@ -47,40 +48,49 @@ import org.osgi.service.component.annota
     })
 public class SlingInfoServlet extends SlingSafeMethodsServlet {
 
-    /**
-     *
-     */
     private static final String CACHE_CONTROL_HEADER = "Cache-Control";
 
     private static final String CACHE_CONTROL_HEADER_VALUE =
         "private, no-store, no-cache, max-age=0, must-revalidate";
 
-    private Map<String, SlingInfoProvider> infoProviders = new HashMap<>();
+    static final String PROVIDER_LABEL = "sessionInfo";
+
+    private Map<String, String> getInfo(final SlingHttpServletRequest request) {
+        final Map<String, String> result = new HashMap<>();
+
+        final ResourceResolver resolver = request.getResourceResolver();
+
+        result.put("userID", resolver.getUserID());
+
+        if (request.getAuthType() != null) {
+            result.put("authType", request.getAuthType());
+        }
+
+        return result;
+    }
 
     @Override
-    protected void doGet(SlingHttpServletRequest request,
-            SlingHttpServletResponse response) throws IOException {
+    protected void doGet(final SlingHttpServletRequest request,
+            final SlingHttpServletResponse response) throws IOException {
 
         Map<String, String> data = null;
 
         if (request.getRequestPathInfo().getSelectors().length > 0) {
-            String label = request.getRequestPathInfo().getSelectors()[0];
-            SlingInfoProvider uip = infoProviders.get(label);
-            if (uip != null) {
-                data = uip.getInfo(request);
+            final String label = request.getRequestPathInfo().getSelectors()[0];
+            if ( PROVIDER_LABEL.equals(label) ) {
+                data = this.getInfo(request);
             }
         }
 
         if (data == null) {
 
-            // listOptions(response);
             response.sendError(HttpServletResponse.SC_NOT_FOUND,
                 "Unknown Info Request");
 
         } else {
             response.setHeader(CACHE_CONTROL_HEADER, CACHE_CONTROL_HEADER_VALUE);
 
-            String extension = request.getRequestPathInfo().getExtension();
+            final String extension = request.getRequestPathInfo().getExtension();
             if ("json".equals(extension)) {
                 renderJson(response, data);
             } else if ("txt".equals(extension)) {
@@ -91,39 +101,9 @@ public class SlingInfoServlet extends Sl
 
         }
     }
-/*
-    private void listOptions(SlingHttpServletResponse response)
-            throws IOException {
 
-        // render data in JSON format
-        response.setContentType("text/html");
-        response.setCharacterEncoding("UTF-8");
-
-        final PrintWriter out = response.getWriter();
-
-        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">");
-        out.println("<html><head><title>Sling Info Providers</title></head>");
-        out.println("<body><h1>Select from the following Providers</h1>");
-
-        out.println("<table>");
-        for (String label : infoProviders.keySet()) {
-            out.print("<tr><td>");
-            out.print("<a href='sling.");
-            out.print(label);
-            out.print(".html'>");
-            out.print(label);
-            out.print("</a>");
-            out.println("</td></tr>");
-        }
-        out.println("</table>");
-
-        out.println("</body>");
-        out.flush();
-
-    }
-*/
-    private void renderJson(SlingHttpServletResponse response,
-            Map<String, String> data) throws IOException {
+    private void renderJson(final SlingHttpServletResponse response,
+            final Map<String, String> data) throws IOException {
         // render data in JSON format
         response.setContentType("application/json");
         response.setCharacterEncoding("UTF-8");
@@ -133,7 +113,7 @@ public class SlingInfoServlet extends Sl
 
         try {
             w.object();
-            for (Map.Entry<String, String> e : data.entrySet()) {
+            for (final Map.Entry<String, String> e : data.entrySet()) {
                 w.key(e.getKey());
                 w.value(e.getValue());
             }
@@ -147,8 +127,8 @@ public class SlingInfoServlet extends Sl
         }
     }
 
-    private void renderHtml(SlingHttpServletResponse response,
-            Map<String, String> data) throws IOException {
+    private void renderHtml(final SlingHttpServletResponse response,
+            final Map<String, String> data) throws IOException {
         // render data in JSON format
         response.setContentType("text/html");
         response.setCharacterEncoding("UTF-8");
@@ -156,15 +136,15 @@ public class SlingInfoServlet extends Sl
         final PrintWriter out = response.getWriter();
 
         out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">");
-        out.println("<html><head><title>Sling Info</title></head>");
-        out.println("<body><h1>Sling Info</h1>");
+        out.println("<html><head><title>Apche Sling Info</title></head>");
+        out.println("<body><h1>Apache Sling Info</h1>");
 
         out.println("<table>");
-        for (Map.Entry<String, String> e : data.entrySet()) {
+        for (final Map.Entry<String, String> e : data.entrySet()) {
             out.print("<tr><td>");
-            out.print(e.getKey());
+            out.print(ResponseUtil.escapeXml(e.getKey()));
             out.print("</td><td>");
-            out.print(e.getValue());
+            out.print(ResponseUtil.escapeXml(e.getValue()));
             out.println("</td></tr>");
         }
         out.println("</table>");
@@ -173,8 +153,8 @@ public class SlingInfoServlet extends Sl
         out.flush();
     }
 
-    private void renderPlainText(SlingHttpServletResponse response,
-            Map<String, String> data) throws IOException {
+    private void renderPlainText(final SlingHttpServletResponse response,
+            final Map<String, String> data) throws IOException {
 
         // render data in JSON format
         response.setContentType("text/plain");
@@ -182,7 +162,7 @@ public class SlingInfoServlet extends Sl
 
         final PrintWriter out = response.getWriter();
 
-        for (Map.Entry<String, String> e : data.entrySet()) {
+        for (final Map.Entry<String, String> e : data.entrySet()) {
             out.print(e.getKey());
             out.print(": ");
             out.println(e.getValue());
@@ -190,16 +170,4 @@ public class SlingInfoServlet extends Sl
 
         out.flush();
     }
-
-    // --------- SCR integration -----------------------------------------------
-
-    @Activate
-    protected void activate() {
-        try {
-            infoProviders.put(SessionInfoProvider.PROVIDER_LABEL,
-                new SessionInfoProvider());
-        } catch ( final Throwable t) {
-            // if no JCR API is available the above might throw an exception
-        }
-    }
 }
\ No newline at end of file