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;