remm 2005/08/29 04:02:06
Modified: catalina/src/share/org/apache/catalina/authenticator
FormAuthenticator.java
Log:
- 36136: Refactor the login and error page forward to protected methods,
which indeed enables easier extending (the authenticate method being too
large).
- Submitted by Scott Stark.
Revision Changes Path
1.24 +47 -22
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/authenticator/FormAuthenticator.java
Index: FormAuthenticator.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/authenticator/FormAuthenticator.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- FormAuthenticator.java 22 May 2005 17:18:28 -0000 1.23
+++ FormAuthenticator.java 29 Aug 2005 11:02:06 -0000 1.24
@@ -53,10 +53,9 @@
public class FormAuthenticator
extends AuthenticatorBase {
+
private static Log log = LogFactory.getLog(FormAuthenticator.class);
-
-
// ----------------------------------------------------- Instance
Variables
@@ -240,15 +239,7 @@
sm.getString("authenticator.requestBodyTooBig"));
return (false);
}
- RequestDispatcher disp =
- context.getServletContext().getRequestDispatcher
- (config.getLoginPage());
- try {
- disp.forward(request.getRequest(), response.getResponse());
- response.finishResponse();
- } catch (Throwable t) {
- log.warn("Unexpected error forwarding to login page", t);
- }
+ forwardToLoginPage(request, response, config);
return (false);
}
@@ -264,14 +255,7 @@
log.debug("Authenticating username '" + username + "'");
principal = realm.authenticate(username, password);
if (principal == null) {
- RequestDispatcher disp =
- context.getServletContext().getRequestDispatcher
- (config.getErrorPage());
- try {
- disp.forward(request.getRequest(), response.getResponse());
- } catch (Throwable t) {
- log.warn("Unexpected error forwarding to error page", t);
- }
+ forwardToErrorPage(request, response, config);
return (false);
}
@@ -315,6 +299,47 @@
/**
+ * Called to forward to the login page
+ *
+ * @param request Request we are processing
+ * @param response Response we are creating
+ * @param config Login configuration describing how authentication
+ * should be performed
+ */
+ protected void forwardToLoginPage(Request request, Response response,
LoginConfig config) {
+ RequestDispatcher disp =
+ context.getServletContext().getRequestDispatcher
+ (config.getLoginPage());
+ try {
+ disp.forward(request.getRequest(), response.getResponse());
+ response.finishResponse();
+ } catch (Throwable t) {
+ log.warn("Unexpected error forwarding to login page", t);
+ }
+ }
+
+
+ /**
+ * Called to forward to the error page
+ *
+ * @param request Request we are processing
+ * @param response Response we are creating
+ * @param config Login configuration describing how authentication
+ * should be performed
+ */
+ protected void forwardToErrorPage(Request request, Response response,
LoginConfig config) {
+ RequestDispatcher disp =
+ context.getServletContext().getRequestDispatcher
+ (config.getErrorPage());
+ try {
+ disp.forward(request.getRequest(), response.getResponse());
+ } catch (Throwable t) {
+ log.warn("Unexpected error forwarding to error page", t);
+ }
+ }
+
+
+ /**
* Does this request match the saved one (so that it must be the redirect
* we signalled after successful authentication?
*
@@ -423,7 +448,7 @@
* @param session The session to contain the saved information
* @throws IOException
*/
- private void saveRequest(Request request, Session session)
+ protected void saveRequest(Request request, Session session)
throws IOException {
// Create and populate a SavedRequest object for this request
@@ -478,7 +503,7 @@
*
* @param session Our current session
*/
- private String savedRequestURL(Session session) {
+ protected String savedRequestURL(Session session) {
SavedRequest saved =
(SavedRequest) session.getNote(Constants.FORM_REQUEST_NOTE);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]