You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by ss...@apache.org on 2012/06/26 19:16:57 UTC
svn commit: r1354114 -
/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AuthenticationServletFilter.java
Author: ssievers
Date: Tue Jun 26 17:16:56 2012
New Revision: 1354114
URL: http://svn.apache.org/viewvc?rev=1354114&view=rev
Log:
SHINDIG-1800 | Enhance AuthenticationServletFilter to be more easily overrideable
Modified:
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AuthenticationServletFilter.java
Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AuthenticationServletFilter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AuthenticationServletFilter.java?rev=1354114&r1=1354113&r2=1354114&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AuthenticationServletFilter.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AuthenticationServletFilter.java Tue Jun 26 17:16:56 2012
@@ -116,15 +116,11 @@ public class AuthenticationServletFilter
}
}
if (iae.getRedirect() != null) {
- resp.sendRedirect(iae.getRedirect());
+ onRedirect(req, resp, iae);
} else {
// Set auth header
setAuthHeader(authHeader, resp);
-
- // For now append the cause message if set, this allows us to send any underlying oauth errors
- String message = (cause==null) ? iae.getMessage() : iae.getMessage() + cause.getMessage();
-
- resp.sendError(HttpServletResponse.SC_UNAUTHORIZED, message);
+ onError(req, resp, iae);
}
}
}
@@ -137,6 +133,44 @@ public class AuthenticationServletFilter
return realm;
}
+ /**
+ * Override this to perform extra error processing. Headers will have already been set on the
+ * response.
+ *
+ * @param req
+ * the current http request for this filter
+ * @param resp
+ * the current http response for this filter
+ * @param iae
+ * the exception that caused the error path
+ * @throws IOException
+ */
+ protected void onError(HttpServletRequest req, HttpServletResponse resp,
+ AuthenticationHandler.InvalidAuthenticationException iae) throws IOException {
+ Throwable cause = iae.getCause();
+
+ // For now append the cause message if set, this allows us to send any underlying oauth errors
+ String message = (cause == null) ? iae.getMessage() : iae.getMessage() + cause.getMessage();
+ resp.sendError(HttpServletResponse.SC_UNAUTHORIZED, message);
+ }
+
+ /**
+ * Override this to perform extra processing on redirect. Headers will have already been set on
+ * the response.
+ *
+ * @param req
+ * the current http request for this filter
+ * @param resp
+ * the current http response for this filter
+ * @param iae
+ * the exception that caused the redirect path
+ * @throws IOException
+ */
+ protected void onRedirect(HttpServletRequest req, HttpServletResponse resp,
+ AuthenticationHandler.InvalidAuthenticationException iae) throws IOException {
+ resp.sendRedirect(iae.getRedirect());
+ }
+
private void setAuthHeader(@Nullable String authHeader, HttpServletResponse response) {
if (authHeader != null) {
response.addHeader(WWW_AUTHENTICATE_HEADER, authHeader);