Author: remy.maucherat(a)jboss.com
Date: 2009-11-27 19:10:08 -0500 (Fri, 27 Nov 2009)
New Revision: 1303
Modified:
trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java
trunk/java/org/apache/catalina/deploy/FilterMap.java
Log:
- No idea why I did not notice these could be used as flags (as I do all the time for
APR).
Modified: trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java
===================================================================
--- trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java 2009-11-27 17:11:52
UTC (rev 1302)
+++ trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java 2009-11-28 00:10:08
UTC (rev 1303)
@@ -47,10 +47,8 @@
package org.apache.catalina.core;
-import javax.servlet.Servlet;
import javax.servlet.ServletRequest;
import javax.servlet.ServletRequestWrapper;
-import javax.servlet.http.HttpServletRequest;
import org.apache.catalina.Globals;
import org.apache.catalina.Wrapper;
@@ -141,9 +139,6 @@
requestPath = attribute.toString();
}
- HttpServletRequest hreq = null;
- if (request instanceof HttpServletRequest)
- hreq = (HttpServletRequest)request;
// If there is no servlet to execute, return null
if (wrapper.getServlet() == null)
return (null);
@@ -391,107 +386,32 @@
private boolean matchDispatcher(FilterMap filterMap, int dispatcher) {
switch (dispatcher) {
case FORWARD : {
- if (filterMap.getDispatcherMapping() == FilterMap.FORWARD ||
- filterMap.getDispatcherMapping() == FilterMap.FORWARD_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.INCLUDE_FORWARD ||
- filterMap.getDispatcherMapping() == FilterMap.INCLUDE_ERROR_FORWARD
||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_FORWARD ||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_ERROR_FORWARD
||
- filterMap.getDispatcherMapping() ==
FilterMap.REQUEST_ERROR_FORWARD_INCLUDE ||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_FORWARD_INCLUDE
||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_FORWARD ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_FORWARD_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_INCLUDE_FORWARD
||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_INCLUDE_ERROR_FORWARD ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_REQUEST_FORWARD
||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_FORWARD ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_FORWARD_INCLUDE ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_FORWARD_INCLUDE) {
+ if ((filterMap.getDispatcherMapping() & FilterMap.FORWARD) ==
FilterMap.FORWARD) {
return true;
}
break;
}
case INCLUDE : {
- if (filterMap.getDispatcherMapping() == FilterMap.INCLUDE ||
- filterMap.getDispatcherMapping() == FilterMap.INCLUDE_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.INCLUDE_FORWARD ||
- filterMap.getDispatcherMapping() == FilterMap.INCLUDE_ERROR_FORWARD
||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_INCLUDE ||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_ERROR_INCLUDE
||
- filterMap.getDispatcherMapping() ==
FilterMap.REQUEST_ERROR_FORWARD_INCLUDE ||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_FORWARD_INCLUDE
||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_INCLUDE ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_INCLUDE_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_INCLUDE_FORWARD
||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_INCLUDE_ERROR_FORWARD ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_REQUEST_INCLUDE
||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_INCLUDE ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_FORWARD_INCLUDE ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_FORWARD_INCLUDE) {
- return true;
+ if ((filterMap.getDispatcherMapping() & FilterMap.INCLUDE) ==
FilterMap.INCLUDE) {
+ return true;
}
break;
}
case REQUEST : {
- if (filterMap.getDispatcherMapping() == FilterMap.REQUEST ||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_INCLUDE ||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_ERROR_INCLUDE
||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_FORWARD ||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_ERROR_FORWARD
||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_FORWARD_INCLUDE
||
- filterMap.getDispatcherMapping() ==
FilterMap.REQUEST_ERROR_FORWARD_INCLUDE ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_REQUEST ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_REQUEST_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_REQUEST_INCLUDE
||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_INCLUDE ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_REQUEST_FORWARD
||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_FORWARD ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_FORWARD_INCLUDE ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_FORWARD_INCLUDE) {
- return true;
+ if ((filterMap.getDispatcherMapping() & FilterMap.REQUEST) ==
FilterMap.REQUEST) {
+ return true;
}
break;
}
case ERROR : {
- if (filterMap.getDispatcherMapping() == FilterMap.ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.FORWARD_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.INCLUDE_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.INCLUDE_ERROR_FORWARD
||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_ERROR_FORWARD
||
- filterMap.getDispatcherMapping() ==
FilterMap.REQUEST_ERROR_FORWARD_INCLUDE ||
- filterMap.getDispatcherMapping() == FilterMap.REQUEST_ERROR_INCLUDE
||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_FORWARD_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_INCLUDE_ERROR ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_INCLUDE_ERROR_FORWARD ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_REQUEST_ERROR ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_FORWARD ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_FORWARD_INCLUDE ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_INCLUDE) {
- return true;
+ if ((filterMap.getDispatcherMapping() & FilterMap.ERROR) ==
FilterMap.ERROR) {
+ return true;
}
break;
}
case ASYNC : {
- if (filterMap.getDispatcherMapping() == FilterMap.ASYNC ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_FORWARD ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_FORWARD_ERROR ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_INCLUDE ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_INCLUDE_ERROR ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_INCLUDE_ERROR_FORWARD ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_INCLUDE_FORWARD
||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_REQUEST ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_REQUEST_ERROR ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_FORWARD ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_FORWARD_INCLUDE ||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_ERROR_INCLUDE ||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_REQUEST_FORWARD
||
- filterMap.getDispatcherMapping() == FilterMap.ASYNC_REQUEST_INCLUDE
||
- filterMap.getDispatcherMapping() ==
FilterMap.ASYNC_REQUEST_FORWARD_INCLUDE) {
- return true;
+ if ((filterMap.getDispatcherMapping() & FilterMap.ASYNC) ==
FilterMap.ASYNC) {
+ return true;
}
break;
}
Modified: trunk/java/org/apache/catalina/deploy/FilterMap.java
===================================================================
--- trunk/java/org/apache/catalina/deploy/FilterMap.java 2009-11-27 17:11:52 UTC (rev
1302)
+++ trunk/java/org/apache/catalina/deploy/FilterMap.java 2009-11-28 00:10:08 UTC (rev
1303)
@@ -49,42 +49,15 @@
public static final int ERROR = 1;
public static final int FORWARD = 2;
- public static final int FORWARD_ERROR = 3;
public static final int INCLUDE = 4;
- public static final int INCLUDE_ERROR = 5;
- public static final int INCLUDE_ERROR_FORWARD = 6;
- public static final int INCLUDE_FORWARD = 7;
public static final int REQUEST = 8;
- public static final int REQUEST_ERROR = 9;
- public static final int REQUEST_ERROR_FORWARD = 10;
- public static final int REQUEST_ERROR_FORWARD_INCLUDE = 11;
- public static final int REQUEST_ERROR_INCLUDE = 12;
- public static final int REQUEST_FORWARD = 13;
- public static final int REQUEST_INCLUDE = 14;
- public static final int REQUEST_FORWARD_INCLUDE= 15;
public static final int ASYNC = 16;
- public static final int ASYNC_ERROR = 17;
- public static final int ASYNC_FORWARD = 18;
- public static final int ASYNC_FORWARD_ERROR = 19;
- public static final int ASYNC_INCLUDE = 20;
- public static final int ASYNC_INCLUDE_ERROR = 21;
- public static final int ASYNC_INCLUDE_ERROR_FORWARD = 22;
- public static final int ASYNC_INCLUDE_FORWARD = 23;
- public static final int ASYNC_REQUEST = 24;
- public static final int ASYNC_REQUEST_ERROR = 25;
- public static final int ASYNC_REQUEST_ERROR_FORWARD = 26;
- public static final int ASYNC_REQUEST_ERROR_FORWARD_INCLUDE = 27;
- public static final int ASYNC_REQUEST_ERROR_INCLUDE = 28;
- public static final int ASYNC_REQUEST_FORWARD = 29;
- public static final int ASYNC_REQUEST_INCLUDE = 30;
- public static final int ASYNC_REQUEST_FORWARD_INCLUDE= 31;
// represents nothing having been set. This will be seen
// as equal to a REQUEST
- private static final int NOT_SET = -1;
- private static final int ALL = ASYNC_REQUEST_ERROR_FORWARD_INCLUDE;
+ private static final int NOT_SET = 0;
- private int dispatcherMapping=NOT_SET;
+ private int dispatcherMapping = NOT_SET;
private String filterName = null;
@@ -159,133 +132,37 @@
}
/**
- *
* This method will be used to set the current state of the FilterMap
- * representing the state of when filters should be applied:
- *
- * ERROR
- * FORWARD
- * FORWARD_ERROR
- * INCLUDE
- * INCLUDE_ERROR
- * INCLUDE_ERROR_FORWARD
- * REQUEST
- * REQUEST_ERROR
- * REQUEST_ERROR_INCLUDE
- * REQUEST_ERROR_FORWARD_INCLUDE
- * REQUEST_INCLUDE
- * REQUEST_FORWARD,
- * REQUEST_FORWARD_INCLUDE
- *
+ * representing the state of when filters should be applied.
*/
public void setDispatcher(String dispatcherString) {
String dispatcher = dispatcherString.toUpperCase();
if (dispatcher.equals(DispatcherType.FORWARD.name())) {
-
// apply FORWARD to the global dispatcherMapping.
- switch (dispatcherMapping) {
- case NOT_SET : dispatcherMapping = FORWARD; break;
- case ERROR : dispatcherMapping = FORWARD_ERROR; break;
- case INCLUDE : dispatcherMapping = INCLUDE_FORWARD; break;
- case INCLUDE_ERROR : dispatcherMapping = INCLUDE_ERROR_FORWARD; break;
- case REQUEST : dispatcherMapping = REQUEST_FORWARD; break;
- case REQUEST_ERROR : dispatcherMapping = REQUEST_ERROR_FORWARD; break;
- case REQUEST_ERROR_INCLUDE : dispatcherMapping =
REQUEST_ERROR_FORWARD_INCLUDE; break;
- case REQUEST_INCLUDE : dispatcherMapping = REQUEST_FORWARD_INCLUDE;
break;
- case ASYNC_ERROR : dispatcherMapping = ASYNC_FORWARD_ERROR; break;
- case ASYNC_INCLUDE : dispatcherMapping = ASYNC_INCLUDE_FORWARD; break;
- case ASYNC_INCLUDE_ERROR : dispatcherMapping =
ASYNC_INCLUDE_ERROR_FORWARD; break;
- case ASYNC_REQUEST : dispatcherMapping = ASYNC_REQUEST_FORWARD; break;
- case ASYNC_REQUEST_ERROR : dispatcherMapping =
ASYNC_REQUEST_ERROR_FORWARD; break;
- case ASYNC_REQUEST_ERROR_INCLUDE : dispatcherMapping =
ASYNC_REQUEST_ERROR_FORWARD_INCLUDE; break;
- case ASYNC_REQUEST_INCLUDE : dispatcherMapping =
ASYNC_REQUEST_FORWARD_INCLUDE; break;
- }
+ dispatcherMapping |= FORWARD;
} else if (dispatcher.equals(DispatcherType.INCLUDE.name())) {
// apply INCLUDE to the global dispatcherMapping.
- switch (dispatcherMapping) {
- case NOT_SET : dispatcherMapping = INCLUDE; break;
- case ERROR : dispatcherMapping = INCLUDE_ERROR; break;
- case FORWARD : dispatcherMapping = INCLUDE_FORWARD; break;
- case FORWARD_ERROR : dispatcherMapping = INCLUDE_ERROR_FORWARD; break;
- case REQUEST : dispatcherMapping = REQUEST_INCLUDE; break;
- case REQUEST_ERROR : dispatcherMapping = REQUEST_ERROR_INCLUDE; break;
- case REQUEST_ERROR_FORWARD : dispatcherMapping =
REQUEST_ERROR_FORWARD_INCLUDE; break;
- case REQUEST_FORWARD : dispatcherMapping = REQUEST_FORWARD_INCLUDE;
break;
- case ASYNC_ERROR : dispatcherMapping = ASYNC_INCLUDE_ERROR; break;
- case ASYNC_FORWARD : dispatcherMapping = ASYNC_INCLUDE_FORWARD; break;
- case ASYNC_FORWARD_ERROR : dispatcherMapping =
ASYNC_INCLUDE_ERROR_FORWARD; break;
- case ASYNC_REQUEST : dispatcherMapping = ASYNC_REQUEST_INCLUDE; break;
- case ASYNC_REQUEST_ERROR : dispatcherMapping =
ASYNC_REQUEST_ERROR_INCLUDE; break;
- case ASYNC_REQUEST_ERROR_FORWARD : dispatcherMapping =
ASYNC_REQUEST_ERROR_FORWARD_INCLUDE; break;
- case ASYNC_REQUEST_FORWARD : dispatcherMapping =
ASYNC_REQUEST_FORWARD_INCLUDE; break;
- }
+ dispatcherMapping |= INCLUDE;
} else if (dispatcher.equals(DispatcherType.REQUEST.name())) {
// apply REQUEST to the global dispatcherMapping.
- switch (dispatcherMapping) {
- case NOT_SET : dispatcherMapping = REQUEST; break;
- case ERROR : dispatcherMapping = REQUEST_ERROR; break;
- case FORWARD : dispatcherMapping = REQUEST_FORWARD; break;
- case FORWARD_ERROR : dispatcherMapping = REQUEST_ERROR_FORWARD; break;
- case INCLUDE : dispatcherMapping = REQUEST_INCLUDE; break;
- case INCLUDE_ERROR : dispatcherMapping = REQUEST_ERROR_INCLUDE; break;
- case INCLUDE_FORWARD : dispatcherMapping = REQUEST_FORWARD_INCLUDE;
break;
- case INCLUDE_ERROR_FORWARD : dispatcherMapping =
REQUEST_ERROR_FORWARD_INCLUDE; break;
- case ASYNC_ERROR : dispatcherMapping = ASYNC_REQUEST_ERROR; break;
- case ASYNC_FORWARD : dispatcherMapping = ASYNC_REQUEST_FORWARD; break;
- case ASYNC_FORWARD_ERROR : dispatcherMapping =
ASYNC_REQUEST_ERROR_FORWARD; break;
- case ASYNC_INCLUDE : dispatcherMapping = ASYNC_REQUEST_INCLUDE; break;
- case ASYNC_INCLUDE_ERROR : dispatcherMapping =
ASYNC_REQUEST_ERROR_INCLUDE; break;
- case ASYNC_INCLUDE_FORWARD : dispatcherMapping =
ASYNC_REQUEST_FORWARD_INCLUDE; break;
- case ASYNC_INCLUDE_ERROR_FORWARD : dispatcherMapping =
ASYNC_REQUEST_ERROR_FORWARD_INCLUDE; break;
- }
+ dispatcherMapping |= REQUEST;
} else if (dispatcher.equals(DispatcherType.ERROR.name())) {
// apply ERROR to the global dispatcherMapping.
- switch (dispatcherMapping) {
- case NOT_SET : dispatcherMapping = ERROR; break;
- case FORWARD : dispatcherMapping = FORWARD_ERROR; break;
- case INCLUDE : dispatcherMapping = INCLUDE_ERROR; break;
- case INCLUDE_FORWARD : dispatcherMapping = INCLUDE_ERROR_FORWARD; break;
- case REQUEST : dispatcherMapping = REQUEST_ERROR; break;
- case REQUEST_INCLUDE : dispatcherMapping = REQUEST_ERROR_INCLUDE; break;
- case REQUEST_FORWARD : dispatcherMapping = REQUEST_ERROR_FORWARD; break;
- case REQUEST_FORWARD_INCLUDE : dispatcherMapping =
REQUEST_ERROR_FORWARD_INCLUDE; break;
- case ASYNC_FORWARD : dispatcherMapping = ASYNC_FORWARD_ERROR; break;
- case ASYNC_INCLUDE : dispatcherMapping = ASYNC_INCLUDE_ERROR; break;
- case ASYNC_INCLUDE_FORWARD : dispatcherMapping =
ASYNC_INCLUDE_ERROR_FORWARD; break;
- case ASYNC_REQUEST : dispatcherMapping = ASYNC_REQUEST_ERROR; break;
- case ASYNC_REQUEST_INCLUDE : dispatcherMapping =
ASYNC_REQUEST_ERROR_INCLUDE; break;
- case ASYNC_REQUEST_FORWARD : dispatcherMapping =
ASYNC_REQUEST_ERROR_FORWARD; break;
- case ASYNC_REQUEST_FORWARD_INCLUDE : dispatcherMapping =
ASYNC_REQUEST_ERROR_FORWARD_INCLUDE; break;
- }
+ dispatcherMapping |= ERROR;
} else if (dispatcher.equals(DispatcherType.ASYNC.name())) {
// apply ASYNC to the global dispatcherMapping.
- switch (dispatcherMapping) {
- case NOT_SET : dispatcherMapping = ASYNC; break;
- case ERROR : dispatcherMapping = ASYNC_ERROR; break;
- case FORWARD : dispatcherMapping = ASYNC_FORWARD; break;
- case FORWARD_ERROR : dispatcherMapping = ASYNC_FORWARD_ERROR; break;
- case INCLUDE : dispatcherMapping = ASYNC_INCLUDE; break;
- case INCLUDE_ERROR : dispatcherMapping = ASYNC_INCLUDE_ERROR; break;
- case INCLUDE_ERROR_FORWARD : dispatcherMapping =
ASYNC_INCLUDE_ERROR_FORWARD; break;
- case INCLUDE_FORWARD : dispatcherMapping = ASYNC_INCLUDE_FORWARD; break;
- case REQUEST : dispatcherMapping = ASYNC_REQUEST; break;
- case REQUEST_ERROR : dispatcherMapping = ASYNC_REQUEST_ERROR; break;
- case REQUEST_ERROR_FORWARD : dispatcherMapping =
ASYNC_REQUEST_ERROR_FORWARD; break;
- case REQUEST_ERROR_FORWARD_INCLUDE : dispatcherMapping =
ASYNC_REQUEST_ERROR_FORWARD_INCLUDE; break;
- case REQUEST_ERROR_INCLUDE : dispatcherMapping =
ASYNC_REQUEST_ERROR_INCLUDE; break;
- case REQUEST_FORWARD : dispatcherMapping = ASYNC_REQUEST_FORWARD; break;
- case REQUEST_INCLUDE : dispatcherMapping = ASYNC_REQUEST_INCLUDE; break;
- case REQUEST_FORWARD_INCLUDE : dispatcherMapping =
ASYNC_REQUEST_FORWARD_INCLUDE; break;
- }
+ dispatcherMapping |= ASYNC;
}
}
public int getDispatcherMapping() {
// per the SRV.6.2.5 absence of any dispatcher elements is
// equivelant to a REQUEST value
- if (dispatcherMapping == NOT_SET) return REQUEST;
- else return dispatcherMapping;
+ if (dispatcherMapping == NOT_SET)
+ return REQUEST;
+ else
+ return dispatcherMapping;
}
Show replies by date