You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@apache.org on 2001/01/23 03:53:04 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves AccessLogValve.java CertificatesValve.java RemoteAddrValve.java RemoteHostValve.java RequestDumperValve.java RequestFilterValve.java ValveBase.java
craigmcc 01/01/22 18:53:04
Modified: catalina/src/share/org/apache/catalina/authenticator
AuthenticatorBase.java SingleSignOn.java
catalina/src/share/org/apache/catalina/valves
AccessLogValve.java CertificatesValve.java
RemoteAddrValve.java RemoteHostValve.java
RequestDumperValve.java RequestFilterValve.java
ValveBase.java
Log:
Fourth of four commits for the Valves API changes.
Update all existing Valve implementations to reflect the new API changes.
Revision Changes Path
1.7 +20 -17 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/authenticator/AuthenticatorBase.java
Index: AuthenticatorBase.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/authenticator/AuthenticatorBase.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AuthenticatorBase.java 2000/12/16 01:42:46 1.6
+++ AuthenticatorBase.java 2001/01/23 02:53:02 1.7
@@ -1,13 +1,13 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/authenticator/AuthenticatorBase.java,v 1.6 2000/12/16 01:42:46 craigmcc Exp $
- * $Revision: 1.6 $
- * $Date: 2000/12/16 01:42:46 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/authenticator/AuthenticatorBase.java,v 1.7 2001/01/23 02:53:02 craigmcc Exp $
+ * $Revision: 1.7 $
+ * $Date: 2001/01/23 02:53:02 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -92,6 +92,7 @@
import org.apache.catalina.Response;
import org.apache.catalina.Session;
import org.apache.catalina.Valve;
+import org.apache.catalina.ValveContext;
import org.apache.catalina.deploy.LoginConfig;
import org.apache.catalina.deploy.SecurityConstraint;
import org.apache.catalina.util.LifecycleSupport;
@@ -116,7 +117,7 @@
* requests. Requests of any other type will simply be passed through.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.6 $ $Date: 2000/12/16 01:42:46 $
+ * @version $Revision: 1.7 $ $Date: 2001/01/23 02:53:02 $
*/
@@ -393,22 +394,25 @@
*
* @param request Request to be processed
* @param response Response to be processed
+ * @param context The valve context used to invoke the next valve
+ * in the current processing pipeline
*
* @exception IOException if an input/output error occurs
* @exception ServletException if thrown by a processing element
*/
- public void invoke(Request request, Response response)
+ public void invoke(Request request, Response response,
+ ValveContext context)
throws IOException, ServletException {
// If this is not an HTTP request, do nothing
if (!(request instanceof HttpRequest) ||
!(response instanceof HttpResponse)) {
- invokeNext(request, response);
+ context.invokeNext(request, response);
return;
}
if (!(request.getRequest() instanceof HttpServletRequest) ||
!(response.getResponse() instanceof HttpServletResponse)) {
- invokeNext(request, response);
+ context.invokeNext(request, response);
return;
}
HttpRequest hrequest = (HttpRequest) request;
@@ -417,7 +421,7 @@
log("Security checking request " +
((HttpServletRequest) request.getRequest()).getMethod() + " " +
((HttpServletRequest) request.getRequest()).getRequestURI());
- LoginConfig config = context.getLoginConfig();
+ LoginConfig config = this.context.getLoginConfig();
// Have we got a cached authenticated Principal to record?
if (cache) {
@@ -443,7 +447,7 @@
// Special handling for form-based logins to deal with the case
// where the login form (and therefore the "j_security_check" URI
// to which it submits) might be outside the secured area
- String contextPath = context.getPath();
+ String contextPath = this.context.getPath();
String requestURI =
((HttpServletRequest) request.getRequest()).getRequestURI();
if (requestURI.startsWith(contextPath) &&
@@ -461,7 +465,7 @@
(!Constants.FORM_METHOD.equals(config.getAuthMethod())) */ ) {
if (debug >= 1)
log(" Not subject to any constraint");
- invokeNext(request, response);
+ context.invokeNext(request, response);
return;
}
if ((debug >= 1) && (constraint != null))
@@ -498,7 +502,7 @@
// Any and all specified constraints have been satisfied
if (debug >= 1)
log(" Successfully passed all security constraints");
- invokeNext(request, response);
+ context.invokeNext(request, response);
}
@@ -952,13 +956,12 @@
parent = parent.getParent();
continue;
}
- Valve valve = ((Pipeline) parent).findValves();
- while ((sso == null) && (valve != null)) {
- if (valve instanceof SingleSignOn) {
- sso = (SingleSignOn) valve;
+ Valve valves[] = ((Pipeline) parent).getValves();
+ for (int i = 0; i < valves.length; i++) {
+ if (valves[i] instanceof SingleSignOn) {
+ sso = (SingleSignOn) valves[i];
break;
}
- valve = valve.getNext();
}
if (sso == null)
parent = parent.getParent();
1.4 +14 -10 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/authenticator/SingleSignOn.java
Index: SingleSignOn.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/authenticator/SingleSignOn.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SingleSignOn.java 2000/12/17 01:05:39 1.3
+++ SingleSignOn.java 2001/01/23 02:53:03 1.4
@@ -1,13 +1,13 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/authenticator/SingleSignOn.java,v 1.3 2000/12/17 01:05:39 craigmcc Exp $
- * $Revision: 1.3 $
- * $Date: 2000/12/17 01:05:39 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/authenticator/SingleSignOn.java,v 1.4 2001/01/23 02:53:03 craigmcc Exp $
+ * $Revision: 1.4 $
+ * $Date: 2001/01/23 02:53:03 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -77,6 +77,7 @@
import org.apache.catalina.Logger;
import org.apache.catalina.Request;
import org.apache.catalina.Response;
+import org.apache.catalina.ValveContext;
import org.apache.catalina.valves.ValveBase;
import org.apache.catalina.util.StringManager;
@@ -99,7 +100,7 @@
* </ul>
*
* @author Craig R. McClanahan
- * @version $Revision: 1.3 $ $Date: 2000/12/17 01:05:39 $
+ * @version $Revision: 1.4 $ $Date: 2001/01/23 02:53:03 $
*/
public class SingleSignOn
@@ -179,17 +180,20 @@
*
* @param request The servlet request we are processing
* @param response The servlet response we are creating
+ * @param context The valve context used to invoke the next valve
+ * in the current processing pipeline
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
- public void invoke(Request request, Response response)
+ public void invoke(Request request, Response response,
+ ValveContext context)
throws IOException, ServletException {
// If this is not an HTTP request and response, just pass them on
if (!(request instanceof HttpRequest) ||
!(response instanceof HttpResponse)) {
- invokeNext(request, response);
+ context.invokeNext(request, response);
return;
}
@@ -202,7 +206,7 @@
if (debug >= 1)
log(" Principal '" + hreq.getUserPrincipal().getName() +
"' has already been authenticated");
- invokeNext(request, response);
+ context.invokeNext(request, response);
return;
}
@@ -222,7 +226,7 @@
if (cookie == null) {
if (debug >= 1)
log(" SSO cookie is not present");
- invokeNext(request, response);
+ context.invokeNext(request, response);
return;
}
@@ -243,7 +247,7 @@
}
// Invoke the next Valve in our pipeline
- invokeNext(request, response);
+ context.invokeNext(request, response);
}
1.4 +17 -13 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java
Index: AccessLogValve.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AccessLogValve.java 2001/01/11 03:51:53 1.3
+++ AccessLogValve.java 2001/01/23 02:53:03 1.4
@@ -3,7 +3,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -80,20 +80,21 @@
import org.apache.catalina.LifecycleListener;
import org.apache.catalina.Request;
import org.apache.catalina.Response;
+import org.apache.catalina.ValveContext;
import org.apache.catalina.util.LifecycleSupport;
import org.apache.catalina.util.StringManager;
/**
- * Implementation of the <b>Valve</b> interface that generates a web server
+ * <p>Implementation of the <b>Valve</b> interface that generates a web server
* access log with the detailed line contents matching a configurable pattern.
* The syntax of the available patterns is similar to that supported by the
* Apache <code>mod_log_config</code> module. As an additional feature,
- * automatic rollover of log files when the date changes is also supported.
- * <p>
- * Patterns for the logged message may include constant text or any of the
+ * automatic rollover of log files when the date changes is also supported.</p>
+ *
+ * <p>Patterns for the logged message may include constant text or any of the
* following replacement strings, for which the corresponding information
- * from the specified Response is substituted:
+ * from the specified Response is substituted:</p>
* <ul>
* <li><b>%a</b> - Remote IP address
* <li><b>%A</b> - Local IP address
@@ -114,18 +115,18 @@
* <li><b>%U</b> - Requested URL path
* <li><b>%v</b> - Local server name
* </ul>
- * In addition, the caller can specify one of the following aliases for
- * commonly utilized patterns:
+ * <p>In addition, the caller can specify one of the following aliases for
+ * commonly utilized patterns:</p>
* <ul>
* <li><b>common</b> - <code>%h %l %u %t "%r" %s %b</code>
* </ul>
*
- * <b>FIXME</b> - Improve the parsing so that things like <code>%{xxx}i</code>
- * can be implemented.
+ * <p><b>FIXME</b> - Improve the parsing so that things like
+ * <code>%{xxx}i</code> can be implemented.</p>
*
* @author Craig R. McClanahan
* @author Jason Brittain
- * @version $Revision: 1.3 $ $Date: 2001/01/11 03:51:53 $
+ * @version $Revision: 1.4 $ $Date: 2001/01/23 02:53:03 $
*/
public final class AccessLogValve
@@ -403,15 +404,18 @@
*
* @param request Request being processed
* @param response Response being processed
+ * @param context The valve context used to invoke the next valve
+ * in the current processing pipeline
*
* @exception IOException if an input/output error has occurred
* @exception ServletException if a servlet error has occurred
*/
- public void invoke(Request request, Response response)
+ public void invoke(Request request, Response response,
+ ValveContext context)
throws IOException, ServletException {
// Pass this request on to the next valve in our pipeline
- invokeNext(request, response);
+ context.invokeNext(request, response);
Date date = getDate();
StringBuffer result = new StringBuffer();
1.6 +15 -11 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/CertificatesValve.java
Index: CertificatesValve.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/CertificatesValve.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- CertificatesValve.java 2000/10/31 23:53:29 1.5
+++ CertificatesValve.java 2001/01/23 02:53:03 1.6
@@ -1,13 +1,13 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/CertificatesValve.java,v 1.5 2000/10/31 23:53:29 craigmcc Exp $
- * $Revision: 1.5 $
- * $Date: 2000/10/31 23:53:29 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/CertificatesValve.java,v 1.6 2001/01/23 02:53:03 craigmcc Exp $
+ * $Revision: 1.6 $
+ * $Date: 2001/01/23 02:53:03 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -83,6 +83,7 @@
import org.apache.catalina.Request;
import org.apache.catalina.Response;
import org.apache.catalina.Valve;
+import org.apache.catalina.ValveContext;
import org.apache.catalina.connector.RequestWrapper;
import org.apache.catalina.deploy.LoginConfig;
import org.apache.catalina.util.LifecycleSupport;
@@ -90,8 +91,8 @@
/**
- * Implementation of a Valve that deals with SSL client certificates, as
- * follows:
+ * <p>Implementation of a Valve that deals with SSL client certificates, as
+ * follows:</p>
* <ul>
* <li>If this request was not received on an SSL socket, simply pass it
* on unmodified.</li>
@@ -107,11 +108,11 @@
* as request attributes.</li>
* </ul>
*
- * The above tasks have been combined into a single Valve to minimize the
- * amount of code that has to check for the existence of JSSE classes.
+ * <p>The above tasks have been combined into a single Valve to minimize the
+ * amount of code that has to check for the existence of JSSE classes.</p>
*
* @author Craig R. McClanahan
- * @version $Revision: 1.5 $ $Date: 2000/10/31 23:53:29 $
+ * @version $Revision: 1.6 $ $Date: 2001/01/23 02:53:03 $
*/
public final class CertificatesValve
@@ -217,11 +218,14 @@
*
* @param request The servlet request to be processed
* @param response The servlet response to be created
+ * @param context The valve context used to invoke the next valve
+ * in the current processing pipeline
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
- public void invoke(Request request, Response response)
+ public void invoke(Request request, Response response,
+ ValveContext context)
throws IOException, ServletException {
// Identify the underlying request if this request was wrapped
@@ -239,7 +243,7 @@
expose(request, actual);
// Invoke the next Valve in our Pipeline
- invokeNext(request, response);
+ context.invokeNext(request, response);
}
1.2 +10 -6 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RemoteAddrValve.java
Index: RemoteAddrValve.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RemoteAddrValve.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RemoteAddrValve.java 2000/08/11 17:03:15 1.1
+++ RemoteAddrValve.java 2001/01/23 02:53:03 1.2
@@ -1,13 +1,13 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RemoteAddrValve.java,v 1.1 2000/08/11 17:03:15 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/08/11 17:03:15 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RemoteAddrValve.java,v 1.2 2001/01/23 02:53:03 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2001/01/23 02:53:03 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,6 +69,7 @@
import javax.servlet.ServletException;
import org.apache.catalina.Request;
import org.apache.catalina.Response;
+import org.apache.catalina.ValveContext;
/**
@@ -76,7 +77,7 @@
* based on the string representation of the remote client's IP address.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/08/11 17:03:15 $
+ * @version $Revision: 1.2 $ $Date: 2001/01/23 02:53:03 $
*/
public final class RemoteAddrValve
@@ -117,15 +118,18 @@
*
* @param request The servlet request to be processed
* @param response The servlet response to be created
+ * @param context The valve context used to invoke the next valve
+ * in the current processing pipeline
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
- public void invoke(Request request, Response response)
+ public void invoke(Request request, Response response,
+ ValveContext context)
throws IOException, ServletException {
process(request.getRequest().getRemoteAddr(),
- request, response);
+ request, response, context);
}
1.2 +11 -7 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RemoteHostValve.java
Index: RemoteHostValve.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RemoteHostValve.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RemoteHostValve.java 2000/08/11 17:03:15 1.1
+++ RemoteHostValve.java 2001/01/23 02:53:03 1.2
@@ -1,13 +1,13 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RemoteHostValve.java,v 1.1 2000/08/11 17:03:15 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/08/11 17:03:15 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RemoteHostValve.java,v 1.2 2001/01/23 02:53:03 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2001/01/23 02:53:03 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,6 +69,7 @@
import javax.servlet.ServletException;
import org.apache.catalina.Request;
import org.apache.catalina.Response;
+import org.apache.catalina.ValveContext;
/**
@@ -76,7 +77,7 @@
* based on the string representation of the remote client's IP address.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/08/11 17:03:15 $
+ * @version $Revision: 1.2 $ $Date: 2001/01/23 02:53:03 $
*/
public final class RemoteHostValve
@@ -90,7 +91,7 @@
* The descriptive information related to this implementation.
*/
private static final String info =
- "org.apache.catalina.valves.RemoteAddrValve/1.0";
+ "org.apache.catalina.valves.RemoteHostValve/1.0";
// ------------------------------------------------------------- Properties
@@ -117,15 +118,18 @@
*
* @param request The servlet request to be processed
* @param response The servlet response to be created
+ * @param context The valve context used to invoke the next valve
+ * in the current processing pipeline
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
- public void invoke(Request request, Response response)
+ public void invoke(Request request, Response response,
+ ValveContext context)
throws IOException, ServletException {
process(request.getRequest().getRemoteHost(),
- request, response);
+ request, response, context);
}
1.2 +16 -12 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RequestDumperValve.java
Index: RequestDumperValve.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RequestDumperValve.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RequestDumperValve.java 2000/12/17 01:02:44 1.1
+++ RequestDumperValve.java 2001/01/23 02:53:03 1.2
@@ -1,13 +1,13 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RequestDumperValve.java,v 1.1 2000/12/17 01:02:44 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/12/17 01:02:44 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RequestDumperValve.java,v 1.2 2001/01/23 02:53:03 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2001/01/23 02:53:03 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -82,21 +82,22 @@
import org.apache.catalina.Request;
import org.apache.catalina.Response;
import org.apache.catalina.Valve;
+import org.apache.catalina.ValveContext;
import org.apache.catalina.connector.HttpResponseWrapper;
import org.apache.catalina.util.StringManager;
/**
- * Implementation of a Valve that logs interesting contents from the
+ * <p>Implementation of a Valve that logs interesting contents from the
* specified Request (before processing) and the corresponding Response
* (after processing). It is especially useful in debugging problems
- * related to headers and cookies.
- * <p>
- * This Valve may be attached to any Container, depending on the granularity
- * of the logging you wish to perform.
+ * related to headers and cookies.</p>
*
+ * <p>This Valve may be attached to any Container, depending on the granularity
+ * of the logging you wish to perform.</p>
+ *
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/12/17 01:02:44 $
+ * @version $Revision: 1.2 $ $Date: 2001/01/23 02:53:03 $
*/
public class RequestDumperValve
@@ -142,17 +143,20 @@
*
* @param request The servlet request to be processed
* @param response The servlet response to be created
+ * @param context The valve context used to invoke the next valve
+ * in the current processing pipeline
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
- public void invoke(Request request, Response response)
+ public void invoke(Request request, Response response,
+ ValveContext context)
throws IOException, ServletException {
// Skip logging for non-HTTP requests and responses
if (!(request instanceof HttpRequest) ||
!(response instanceof HttpResponse)) {
- invokeNext(request, response);
+ context.invokeNext(request, response);
return;
}
HttpRequest hrequest = (HttpRequest) request;
@@ -212,7 +216,7 @@
log("---------------------------------------------------------------");
// Perform the request
- invokeNext(request, response);
+ context.invokeNext(request, response);
// Log post-service information
log("---------------------------------------------------------------");
1.2 +16 -16 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RequestFilterValve.java
Index: RequestFilterValve.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RequestFilterValve.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RequestFilterValve.java 2000/08/11 17:03:15 1.1
+++ RequestFilterValve.java 2001/01/23 02:53:03 1.2
@@ -1,13 +1,13 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RequestFilterValve.java,v 1.1 2000/08/11 17:03:15 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/08/11 17:03:15 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/RequestFilterValve.java,v 1.2 2001/01/23 02:53:03 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2001/01/23 02:53:03 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -77,6 +77,7 @@
import org.apache.catalina.Request;
import org.apache.catalina.Response;
import org.apache.catalina.Valve;
+import org.apache.catalina.ValveContext;
import org.apache.catalina.util.StringManager;
@@ -111,7 +112,7 @@
* of the filtering you wish to perform.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/08/11 17:03:15 $
+ * @version $Revision: 1.2 $ $Date: 2001/01/23 02:53:03 $
*/
public abstract class RequestFilterValve
@@ -233,11 +234,14 @@
*
* @param request The servlet request to be processed
* @param response The servlet response to be created
+ * @param context The valve context used to invoke the next valve
+ * in the current processing pipeline
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
- public abstract void invoke(Request request, Response response)
+ public abstract void invoke(Request request, Response response,
+ ValveContext context)
throws IOException, ServletException;
@@ -291,20 +295,17 @@
* @param property The request property on which to filter
* @param request The servlet request to be processed
* @param response The servlet response to be processed
+ * @param context The valve context used to invoke the next valve
+ * in the current processing pipeline
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
protected void process(String property,
- Request request, Response response)
+ Request request, Response response,
+ ValveContext context)
throws IOException, ServletException {
- // Validate our current state
- Valve next = getNext();
- if (next == null)
- throw new IllegalStateException
- (sm.getString("requestFilterValve.next"));
-
// Check the deny patterns, if any
for (int i = 0; i < denies.length; i++) {
if (denies[i].match(property)) {
@@ -320,17 +321,16 @@
// Check the allow patterns, if any
for (int i = 0; i < allows.length; i++) {
if (allows[i].match(property)) {
- next.invoke(request, response);
+ context.invokeNext(request, response);
return;
}
}
// Allow if denies specified but not allows
if ((denies.length > 0) && (allows.length == 0)) {
- next.invoke(request, response);
+ context.invokeNext(request, response);
return;
}
-
// Deny this request
ServletResponse sres = response.getResponse();
1.2 +12 -87 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/ValveBase.java
Index: ValveBase.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/ValveBase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ValveBase.java 2000/08/11 17:03:15 1.1
+++ ValveBase.java 2001/01/23 02:53:03 1.2
@@ -1,13 +1,13 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/ValveBase.java,v 1.1 2000/08/11 17:03:15 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/08/11 17:03:15 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/valves/ValveBase.java,v 1.2 2001/01/23 02:53:03 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2001/01/23 02:53:03 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -67,10 +67,12 @@
import java.io.IOException;
import javax.servlet.ServletException;
+import org.apache.catalina.Contained;
import org.apache.catalina.Container;
import org.apache.catalina.Request;
import org.apache.catalina.Response;
import org.apache.catalina.Valve;
+import org.apache.catalina.ValveContext;
import org.apache.catalina.util.StringManager;
@@ -82,11 +84,11 @@
* management and lifecycle support.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/08/11 17:03:15 $
+ * @version $Revision: 1.2 $ $Date: 2001/01/23 02:53:03 $
*/
public abstract class ValveBase
- implements Valve {
+ implements Contained, Valve {
//------------------------------------------------------ Instance Variables
@@ -107,18 +109,6 @@
/**
- * The next Valve in the pipeline this Valve is a component of.
- */
- protected Valve next = null;
-
-
- /**
- * The previous Valve in the pipeline this Valve is a component of.
- */
- protected Valve previous = null;
-
-
- /**
* The string manager for this package.
*/
protected final static StringManager sm =
@@ -160,52 +150,6 @@
}
- /**
- * Return the next Valve in this pipeline, or <code>null</code> if this
- * is the last Valve in the pipeline.
- */
- public Valve getNext() {
-
- return (next);
-
- }
-
-
- /**
- * Set the Valve that follows this one in the pipeline it is part of.
- *
- * @param valve The new next valve
- */
- public void setNext(Valve valve) {
-
- this.next = valve;
-
- }
-
-
- /**
- * Return the previous Valve in this pipeline, or <code>null</code> if
- * this is the first Valve in the pipeline.
- */
- public Valve getPrevious() {
-
- return (previous);
-
- }
-
-
- /**
- * Set the Valve that preceeds this one in the pipeline it is part of.
- *
- * @param valve The previous valve
- */
- public void setPrevious(Valve valve) {
-
- this.previous = valve;
-
- }
-
-
//---------------------------------------------------------- Public Methods
@@ -217,34 +161,15 @@
*
* @param request The servlet request to be processed
* @param response The servlet response to be created
+ * @param context The valve context used to invoke the next valve
+ * in the current processing pipeline
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
- public abstract void invoke(Request request, Response response)
+ public abstract void invoke(Request request, Response response,
+ ValveContext context)
throws IOException, ServletException;
-
-
- /**
- * Invoke the next Valve in our pipeline, or complain if there is no such
- * Valve remaining.
- *
- * @param request The servlet request to be processed
- * @param response The servlet response to be created
- *
- * @exception IOException if an input/output error occurs
- * @exception ServletException if a servlet error occurs
- */
- public void invokeNext(Request request, Response response)
- throws IOException, ServletException {
-
- if (getNext() != null)
- getNext().invoke(request, response);
- else
- throw new IllegalStateException
- (sm.getString("valveBase.noNext"));
-
- }
}