You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:17:57 UTC
[sling-org-apache-sling-auth-form] 13/32: SLING-1116 Improve
FormReason to convey the human-readable message by toString()
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.auth.form-1.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-auth-form.git
commit 4e10552bdaf13b45fb1644585db4b375b3b56f76
Author: Felix Meschberger <fm...@apache.org>
AuthorDate: Tue Jun 22 07:31:44 2010 +0000
SLING-1116 Improve FormReason to convey the human-readable message by toString()
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/formauth@956797 13f79535-47bb-0310-9956-ffa450edef68
---
.../sling/formauth/AuthenticationFormServlet.java | 5 ++-
.../sling/formauth/FormAuthenticationHandler.java | 19 +++++------
.../java/org/apache/sling/formauth/FormReason.java | 37 +++++++++++++---------
.../org/apache/sling/formauth/FormReasonTest.java | 4 +--
4 files changed, 36 insertions(+), 29 deletions(-)
diff --git a/src/main/java/org/apache/sling/formauth/AuthenticationFormServlet.java b/src/main/java/org/apache/sling/formauth/AuthenticationFormServlet.java
index 34bed2b..0513205 100644
--- a/src/main/java/org/apache/sling/formauth/AuthenticationFormServlet.java
+++ b/src/main/java/org/apache/sling/formauth/AuthenticationFormServlet.java
@@ -144,10 +144,13 @@ public class AuthenticationFormServlet extends HttpServlet {
final String reason = request.getParameter(FormAuthenticationHandler.PAR_J_REASON);
if (reason != null) {
try {
- return FormReason.valueOf(reason).getMessage();
+ return FormReason.valueOf(reason).toString();
} catch (IllegalArgumentException iae) {
// thrown if the reason is not an expected value, assume none
}
+
+ // no valid FormReason value, use raw value
+ return reason;
}
return "";
diff --git a/src/main/java/org/apache/sling/formauth/FormAuthenticationHandler.java b/src/main/java/org/apache/sling/formauth/FormAuthenticationHandler.java
index a8ca7ff..56849b5 100644
--- a/src/main/java/org/apache/sling/formauth/FormAuthenticationHandler.java
+++ b/src/main/java/org/apache/sling/formauth/FormAuthenticationHandler.java
@@ -58,22 +58,14 @@ import org.slf4j.LoggerFactory;
* value="Apache Sling Form Based Authentication Handler"
* @scr.property name="service.vendor" value="The Apache Software Foundation"
* @scr.property nameRef="AuthenticationHandler.PATH_PROPERTY" value="/"
+ * @scr.property nameRef="AuthenticationHandler.TYPE_PROPERTY" value="FORM"
+ * private="true"
* @scr.service
*/
public class FormAuthenticationHandler implements AuthenticationHandler,
AuthenticationFeedbackHandler {
/**
- * The request parameter causing a 401/UNAUTHORIZED status to be sent back
- * in the {@link #authenticate(HttpServletRequest, HttpServletResponse)}
- * method if no credentials are present in the request (value is
- * "sling:authRequestLogin").
- *
- * @see #requestCredentials(HttpServletRequest, HttpServletResponse)
- */
- static final String REQUEST_LOGIN_PARAMETER = "sling:authRequestLogin";
-
- /**
* The name of the parameter providing the login form URL.
*
* @scr.property valueRef="AuthenticationFormServlet.SERVLET_PATH"
@@ -276,6 +268,7 @@ public class FormAuthenticationHandler implements AuthenticationHandler,
} else {
// signal the requestCredentials method a previous login failure
request.setAttribute(PAR_J_REASON, FormReason.TIMEOUT);
+ info = AuthenticationInfo.FAIL_AUTH;
}
}
}
@@ -337,7 +330,11 @@ public class FormAuthenticationHandler implements AuthenticationHandler,
// append indication of previous login failure
if (request.getAttribute(PAR_J_REASON) != null) {
- final String reason = String.valueOf(request.getAttribute(PAR_J_REASON));
+ final Object jReason = request.getAttribute(PAR_J_REASON);
+ @SuppressWarnings("unchecked")
+ final String reason = (jReason instanceof Enum)
+ ? ((Enum) jReason).name()
+ : jReason.toString();
targetBuilder.append(parSep).append(PAR_J_REASON);
targetBuilder.append("=").append(URLEncoder.encode(reason, "UTF-8"));
}
diff --git a/src/main/java/org/apache/sling/formauth/FormReason.java b/src/main/java/org/apache/sling/formauth/FormReason.java
index 256e9e8..2b69869 100644
--- a/src/main/java/org/apache/sling/formauth/FormReason.java
+++ b/src/main/java/org/apache/sling/formauth/FormReason.java
@@ -24,27 +24,34 @@ enum FormReason {
* The login form is request because the credentials previously entered very
* not valid to login to the repository.
*/
- INVALID_CREDENTIALS {
- @Override
- public String getMessage() {
- return "Username and Password do not match";
- }
- },
+ INVALID_CREDENTIALS("Username and Password do not match"),
/**
* The login form is requested because an existing session has timed out and
* the credentials have to be entered again.
*/
- TIMEOUT {
- @Override
- public String getMessage() {
- return "Session timed out, please login again";
- }
- };
+ TIMEOUT("Session timed out, please login again");
/**
- * Returns an english indicative message of the reason to request the login
- * form.
+ * The user-friendly message returned by {@link #toString()}
*/
- abstract String getMessage();
+ private final String message;
+
+ /**
+ * Creates an instance of the reason conveying the given descriptive reason.
+ *
+ * @param message The descriptive reason.
+ */
+ private FormReason(String message) {
+ this.message = message;
+ }
+
+ /**
+ * Returns the message set when constructing this instance. To get the
+ * official name call the <code>name()</code> method.
+ */
+ @Override
+ public String toString() {
+ return message;
+ }
}
diff --git a/src/test/java/org/apache/sling/formauth/FormReasonTest.java b/src/test/java/org/apache/sling/formauth/FormReasonTest.java
index d723ef4..2db1617 100644
--- a/src/test/java/org/apache/sling/formauth/FormReasonTest.java
+++ b/src/test/java/org/apache/sling/formauth/FormReasonTest.java
@@ -24,12 +24,12 @@ public class FormReasonTest extends TestCase {
public void test_TIMEOUT() {
assertEquals(FormReason.TIMEOUT,
- FormReason.valueOf(FormReason.TIMEOUT.toString()));
+ FormReason.valueOf(FormReason.TIMEOUT.name()));
}
public void test_INVALID_CREDENTIALS() {
assertEquals(FormReason.INVALID_CREDENTIALS,
- FormReason.valueOf(FormReason.INVALID_CREDENTIALS.toString()));
+ FormReason.valueOf(FormReason.INVALID_CREDENTIALS.name()));
}
public void test_INVALID() {
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.