Author: fmeschbe
Date: Mon Sep 20 08:52:50 2010
New Revision: 998830

URL: http://svn.apache.org/viewvc?rev=998830&view=rev
Log:
SLING-1785 Use new redirect helper method of tha AbstractAuthenticationHandler

Modified:
    
sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/FormAuthenticationHandler.java
    
sling/trunk/bundles/auth/selector/src/main/java/org/apache/sling/auth/selector/SelectorAuthenticationHandler.java

Modified: 
sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/FormAuthenticationHandler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/FormAuthenticationHandler.java?rev=998830&r1=998829&r2=998830&view=diff
==============================================================================
--- 
sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/FormAuthenticationHandler.java
 (original)
+++ 
sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/FormAuthenticationHandler.java
 Mon Sep 20 08:52:50 2010
@@ -21,10 +21,11 @@ package org.apache.sling.auth.form.impl;
 import java.io.File;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
 import java.util.Dictionary;
+import java.util.HashMap;
+
 import javax.jcr.Credentials;
 import javax.jcr.SimpleCredentials;
 import javax.servlet.Servlet;
@@ -396,38 +397,23 @@ public class FormAuthenticationHandler e
             }
         }
 
-        // prepare the login form redirection target
-        final StringBuilder targetBuilder = new StringBuilder();
-        targetBuilder.append(request.getContextPath());
-        targetBuilder.append(loginForm);
-
-        // append originally requested resource (for redirect after login)
-        char parSep = '?';
-
-        if (resource != null) {
-            targetBuilder.append(parSep).append(Authenticator.LOGIN_RESOURCE);
-            targetBuilder.append("=").append(
-                URLEncoder.encode(resource, "UTF-8"));
-            parSep = '&';
-        }
+        HashMap<String, String> params = new HashMap<String, String>();
+        params.put(Authenticator.LOGIN_RESOURCE, resource);
 
         // append indication of previous login failure
         if (request.getAttribute(FAILURE_REASON) != null) {
             final Object jReason = request.getAttribute(FAILURE_REASON);
-            @SuppressWarnings("unchecked")
+            @SuppressWarnings("rawtypes")
             final String reason = (jReason instanceof Enum)
                     ? ((Enum) jReason).name()
                     : jReason.toString();
-            targetBuilder.append(parSep).append(FAILURE_REASON);
-            targetBuilder.append("=").append(URLEncoder.encode(reason, 
"UTF-8"));
+            params.put(FAILURE_REASON, reason);
         }
 
-        // finally redirect to the login form
-        final String target = targetBuilder.toString();
         try {
-            response.sendRedirect(target);
+            sendRedirect(request, response, loginForm, params);
         } catch (IOException e) {
-            log.error("Failed to redirect to the page: " + target, e);
+            log.error("Failed to redirect to the login form " + loginForm, e);
         }
 
         return true;

Modified: 
sling/trunk/bundles/auth/selector/src/main/java/org/apache/sling/auth/selector/SelectorAuthenticationHandler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/auth/selector/src/main/java/org/apache/sling/auth/selector/SelectorAuthenticationHandler.java?rev=998830&r1=998829&r2=998830&view=diff
==============================================================================
--- 
sling/trunk/bundles/auth/selector/src/main/java/org/apache/sling/auth/selector/SelectorAuthenticationHandler.java
 (original)
+++ 
sling/trunk/bundles/auth/selector/src/main/java/org/apache/sling/auth/selector/SelectorAuthenticationHandler.java
 Mon Sep 20 08:52:50 2010
@@ -19,7 +19,7 @@
 package org.apache.sling.auth.selector;
 
 import java.io.IOException;
-import java.net.URLEncoder;
+import java.util.HashMap;
 import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
@@ -85,18 +85,11 @@ public class SelectorAuthenticationHandl
     }
 
     public boolean requestCredentials(HttpServletRequest request,
-            HttpServletResponse response) throws IOException {
+            HttpServletResponse response) {
 
-        // prepare the login form redirection target
-        final StringBuilder targetBuilder = new StringBuilder();
-        targetBuilder.append(request.getContextPath());
-        targetBuilder.append(loginForm);
-
-        targetBuilder.append('?').append(Authenticator.LOGIN_RESOURCE);
-        targetBuilder.append("=").append(
-            URLEncoder.encode(
-                setLoginResourceAttribute(request, request.getRequestURI()),
-                "UTF-8"));
+        HashMap<String, String> params = new HashMap<String, String>();
+        params.put(Authenticator.LOGIN_RESOURCE,
+            getLoginResource(request, null));
 
         // append indication of previous login failure
         if (request.getAttribute(FAILURE_REASON) != null) {
@@ -105,23 +98,18 @@ public class SelectorAuthenticationHandl
             final String reason = (jReason instanceof Enum)
                     ? ((Enum) jReason).name()
                     : jReason.toString();
-            targetBuilder.append('&').append(FAILURE_REASON);
-            targetBuilder.append("=").append(URLEncoder.encode(reason, 
"UTF-8"));
+            params.put(FAILURE_REASON, reason);
         }
 
         // append selected authentication type of previous request
         if (request.getParameter(PAR_SELECTED_AUTH_TYPE) != null) {
-            targetBuilder.append('&').append(PAR_SELECTED_AUTH_TYPE);
-            targetBuilder.append("=").append(
-                request.getParameter(PAR_SELECTED_AUTH_TYPE));
+            params.put(PAR_SELECTED_AUTH_TYPE, 
request.getParameter(PAR_SELECTED_AUTH_TYPE));
         }
 
-        // finally redirect to the login form
-        final String target = targetBuilder.toString();
         try {
-            response.sendRedirect(target);
+           sendRedirect(request, response, loginForm, params);
         } catch (IOException e) {
-            log.error("Failed to redirect to the page: " + target, e);
+            log.error("Failed to redirect to the login form " + loginForm, e);
         }
 
         return true;


Reply via email to