Author: fmeschbe
Date: Fri Apr 24 18:58:36 2009
New Revision: 768397
URL: http://svn.apache.org/viewvc?rev=768397&view=rev
Log:
SLING-939 Catch new NoAuthenticationHandlerException and log a message
before falling back to sending 403/FORBIDDEN
Modified:
incubator/sling/trunk/bundles/extensions/httpauth/src/main/java/org/apache/sling/httpauth/impl/LoginServlet.java
Modified:
incubator/sling/trunk/bundles/extensions/httpauth/src/main/java/org/apache/sling/httpauth/impl/LoginServlet.java
URL:
http://svn.apache.org/viewvc/incubator/sling/trunk/bundles/extensions/httpauth/src/main/java/org/apache/sling/httpauth/impl/LoginServlet.java?rev=768397&r1=768396&r2=768397&view=diff
==============================================================================
---
incubator/sling/trunk/bundles/extensions/httpauth/src/main/java/org/apache/sling/httpauth/impl/LoginServlet.java
(original)
+++
incubator/sling/trunk/bundles/extensions/httpauth/src/main/java/org/apache/sling/httpauth/impl/LoginServlet.java
Fri Apr 24 18:58:36 2009
@@ -26,6 +26,7 @@
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.engine.auth.Authenticator;
+import org.apache.sling.engine.auth.NoAuthenticationHandlerException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -53,12 +54,21 @@
Authenticator authenticator = this.authenticator;
if (authenticator != null) {
- authenticator.login(request, response);
+ try {
+ authenticator.login(request, response);
+ return;
+ } catch (IllegalStateException ise) {
+ log.error("doGet: Response already committed, cannot login");
+ return;
+ } catch (NoAuthenticationHandlerException nahe) {
+ log.error("doGet: No AuthenticationHandler to login
registered");
+ }
} else {
log.error("doGet: Authenticator service missing, cannot request
authentication");
- response.sendError(HttpServletResponse.SC_FORBIDDEN,
- "Cannot request Authentication");
}
+
+ // fall back to forbid access
+ response.sendError(HttpServletResponse.SC_FORBIDDEN, "Cannot login");
}
@Override