You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2010/09/01 12:43:31 UTC

svn commit: r991500 - in /sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/impl: AuthenticatorWebConsolePlugin.java SlingAuthenticator.java

Author: fmeschbe
Date: Wed Sep  1 10:43:31 2010
New Revision: 991500

URL: http://svn.apache.org/viewvc?rev=991500&view=rev
Log:
SLING-1712 use a Map<String, List<String>> to prepare the authentication handlers to present them on the Authenticator page in the Web Console

Modified:
    sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/impl/AuthenticatorWebConsolePlugin.java
    sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/impl/SlingAuthenticator.java

Modified: sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/impl/AuthenticatorWebConsolePlugin.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/impl/AuthenticatorWebConsolePlugin.java?rev=991500&r1=991499&r2=991500&view=diff
==============================================================================
--- sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/impl/AuthenticatorWebConsolePlugin.java (original)
+++ sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/impl/AuthenticatorWebConsolePlugin.java Wed Sep  1 10:43:31 2010
@@ -81,15 +81,15 @@ public class AuthenticatorWebConsolePlug
         pw.println("<th class='content' colspan='2'>Handler</td>");
         pw.println("</tr>");
 
-        final Map<String, String> handlerMap = slingAuthenticator.getAuthenticationHandler();
-        for (Map.Entry<String, String> handler : handlerMap.entrySet()) {
-
-            pw.println("<tr class='content'>");
-            pw.println("<td class='content'>" + handler.getKey() + "</td>");
-            pw.println("<td class='content' colspan='2'>" + handler.getValue()
-                + "</td>");
-            pw.println("</tr>");
-
+        final Map<String, List<String>> handlerMap = slingAuthenticator.getAuthenticationHandler();
+        for (Map.Entry<String, List<String>> handler : handlerMap.entrySet()) {
+            final String path = handler.getKey();
+            for (String name : handler.getValue()) {
+                pw.println("<tr class='content'>");
+                pw.println("<td class='content'>" + path + "</td>");
+                pw.println("<td class='content' colspan='2'>" + name + "</td>");
+                pw.println("</tr>");
+            }
         }
     }
 

Modified: sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/impl/SlingAuthenticator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/impl/SlingAuthenticator.java?rev=991500&r1=991499&r2=991500&view=diff
==============================================================================
--- sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/impl/SlingAuthenticator.java (original)
+++ sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/impl/SlingAuthenticator.java Wed Sep  1 10:43:31 2010
@@ -543,14 +543,24 @@ public class SlingAuthenticator implemen
     /**
      * Returns the list of registered authentication handlers as a map
      */
-    Map<String, String> getAuthenticationHandler() {
+    Map<String, List<String>> getAuthenticationHandler() {
         List<AbstractAuthenticationHandlerHolder> registeredHolders = authHandlerCache.getHolders();
-        LinkedHashMap<String, String> handlerMap = new LinkedHashMap<String, String>();
+        LinkedHashMap<String, List<String>> handlerMap = new LinkedHashMap<String, List<String>>();
         for (AbstractAuthenticationHandlerHolder holder : registeredHolders) {
-            handlerMap.put(holder.fullPath, holder.getProvider());
+            List<String> provider = handlerMap.get(holder.fullPath);
+            if (provider == null) {
+                provider = new ArrayList<String>();
+                handlerMap.put(holder.fullPath, provider);
+            }
+            provider.add(holder.getProvider());
         }
         if (httpBasicHandler != null) {
-            handlerMap.put("/", httpBasicHandler.toString());
+            List<String> provider = handlerMap.get("/");
+            if (provider == null) {
+                provider = new ArrayList<String>();
+                handlerMap.put("/", provider);
+            }
+            provider.add(httpBasicHandler.toString());
         }
         return handlerMap;
     }