Author: cziegeler
Date: Wed Sep 10 13:48:36 2014
New Revision: 1623999

URL: http://svn.apache.org/r1623999
Log:
SLING-3922 : Login Failure Reason Code Not Propagated In AuthUtil#sendInvalid. 
Apply patch from Dominique Jäggi

Modified:
    
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthConstants.java
    
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java
    
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/package-info.java

Modified: 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthConstants.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthConstants.java?rev=1623999&r1=1623998&r2=1623999&view=diff
==============================================================================
--- 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthConstants.java
 (original)
+++ 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthConstants.java
 Wed Sep 10 13:48:36 2014
@@ -55,6 +55,18 @@ public final class AuthConstants {
     public static final String X_REASON = "X-Reason";
 
     /**
+     * The name of the request header set by the
+     * {@link #sendInvalid(HttpServletRequest, HttpServletResponse)} method if 
the provided
+     * credentials cannot be used for login.
+     * <p>
+     * This header may be inspected by clients for a a detailed reason code 
why the request
+     * failed.
+     *
+     * @see #sendInvalid(HttpServletRequest, HttpServletResponse)
+     */
+    public static final String X_REASON_CODE = "X-Reason-Code";
+
+    /**
      * Service Registration property which may be set by an
      * {@link org.apache.sling.auth.core.spi.AuthenticationHandler} service to
      * indicate whether its

Modified: 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java?rev=1623999&r1=1623998&r2=1623999&view=diff
==============================================================================
--- 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java
 (original)
+++ 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java
 Wed Sep 10 13:48:36 2014
@@ -370,8 +370,12 @@ public final class AuthUtil {
             response.setStatus(HttpServletResponse.SC_FORBIDDEN);
 
             Object reason = 
request.getAttribute(AuthenticationHandler.FAILURE_REASON);
+            Object reasonCode = 
request.getAttribute(AuthenticationHandler.FAILURE_REASON_CODE);
             if (reason != null) {
                 response.setHeader(AuthConstants.X_REASON, reason.toString());
+                if ( reasonCode != null ) {
+                    response.setHeader(AuthConstants.X_REASON_CODE, 
reasonCode.toString());
+                }
                 response.setContentType("text/plain");
                 response.setCharacterEncoding("UTF-8");
                 response.getWriter().println(reason);

Modified: 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/package-info.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/package-info.java?rev=1623999&r1=1623998&r2=1623999&view=diff
==============================================================================
--- 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/package-info.java
 (original)
+++ 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/package-info.java
 Wed Sep 10 13:48:36 2014
@@ -22,9 +22,9 @@
  * of utility functions in the {@link org.apache.sling.auth.core.AuthUtil}
  * class.
  *
- * @version 1.1
+ * @version 1.2
  */
-@Version("1.1")
+@Version("1.2")
 @Export(optional = "provide:=true")
 package org.apache.sling.auth.core;
 


Reply via email to