Author: kkolinko Date: Wed Nov 16 08:02:09 2011 New Revision: 1202570 URL: http://svn.apache.org/viewvc?rev=1202570&view=rev Log: Merged revision 1202565 from tomcat/trunk: Add "denyStatus" attribute to RequestFilterValve, RequestFilter. Add overridable denyRequest() method to RequestFilterValve. The denyStatus attribute is used to change HTTP status code that is used when rejecting denied request. E.g. to be 404 instead of default 403.
Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/catalina/filters/RequestFilter.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/RequestFilterValve.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/mbeans-descriptors.xml tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml tomcat/tc7.0.x/trunk/webapps/docs/config/filter.xml tomcat/tc7.0.x/trunk/webapps/docs/config/valve.xml Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Nov 16 08:02:09 2011 @@ -1 +1 @@ -/tomcat/trunk:1156115,1156171,1156276,1156304,1156519,1156530,1156602,1157015,1157018,1157151,1157198,1157204,1157810,1157832,1157834,1157847,1157908,1157939,1158155,1158160,1158176,1158195,1158198-1158199,1158227,1158331,1158334-1158335,1158426,1160347,1160592,1160611,1160619,1160626,1160639,1160652,1160720-1160721,1160772,1160774,1160776,1161303,1161310,1161322,1161339,1161486,1161540,1161549,1161584,1162082,1162149,1162169,1162721,1162769,1162836,1162932,1163630,1164419,1164438,1164469,1164480,1164567,1165234,1165247-1165248,1165253,1165273,1165282,1165309,1165331,1165338,1165347,1165360-1165361,1165367-1165368,1165602,1165608,1165677,1165693,1165721,1165723,1165728,1165730,1165738,1165746,1165765,1165777,1165918,1165921,1166077,1166150-1166151,1166290,1166366,1166620,1166686,1166693,1166752,1166757,1167368,1167394,1169447,1170647,1171692,1172233-1172234,1172236,1172269,1172278,1172282,1172556,1172610,1172664,1172689,1172711,1173020-1173021,1173082,1173088,1173090,1173096 ,1173241,1173256,1173288,1173333,1173342,1173461,1173614,1173630,1173659,1173722,1174061,1174239,1174322,1174325,1174329-1174330,1174337-1174339,1174343,1174353,1174799,1174882,1174884,1174983,1175155,1175158,1175167,1175182,1175190,1175201,1175272,1175275,1175283,1175582,1175589-1175590,1175594,1175602,1175613,1175633,1175690,1175713,1175798,1175889,1175896,1175907,1176584,1176590,1176799,1177050,1177060,1177125,1177152,1177160,1177245,1177850,1177862,1177978,1178209,1178228,1178233,1178449,1178542,1178681,1178684,1178721,1179268,1179274,1180261,1180865,1180891,1180894,1180907,1181028,1181123,1181125,1181136,1181291,1181743,1182796,1183078,1183105,1183142,1183328,1183339-1183340,1183492-1183494,1183605,1184917,1184919,1185018,1185020,1185200,1185588,1185626,1185756,1185758,1186011,1186042-1186045,1186104,1186123,1186137,1186153,1186254,1186257,1186377-1186379,1186479-1186480,1186712,1186743,1186750,1186763,1186890-1186892,1186894,1186949,1187018,1187027-1187028,1187381,1187 753,1187755,1187775,1187801,1187806,1187809,1187827,1188301,1188303-1188305,1188399,1188822,1188930-1188931,1189116,1189129,1189183,1189240,1189256,1189386,1189413-1189414,1189477,1189685,1189805,1189857,1189864,1189882,1190034,1190185,1190279,1190339,1190371,1190388-1190389,1190474,1190481,1194915,1195222-1195223,1195531,1195899,1195905,1195943,1195949,1195953,1195955,1195965,1195968,1196175,1196212,1196223,1196304-1196305,1196735,1196825,1196827,1197158,1197261,1197263,1197299-1197300,1197305,1197339-1197340,1197343,1197382,1197386-1197387,1197480,1197578,1198497,1198528,1198552,1198602,1198604,1198607,1198622,1198640,1198696,1198707,1199418,1199432,1199436,1199513,1199529,1199980,1199996,1200056,1200089,1200106-1200107,1200263,1200316,1200320,1200398-1200399,1200445-1200446,1200555,1200627,1200696,1200725,1200937,1200941,1201069,1201087,1201180,1201235-1201237,1201508,1201521,1201542,1201545-1201546,1201548,1201555-1201556,1201568,1201576,1201608,1201921-1201922,1201931,1 202035,1202039,1202271 +/tomcat/trunk:1156115,1156171,1156276,1156304,1156519,1156530,1156602,1157015,1157018,1157151,1157198,1157204,1157810,1157832,1157834,1157847,1157908,1157939,1158155,1158160,1158176,1158195,1158198-1158199,1158227,1158331,1158334-1158335,1158426,1160347,1160592,1160611,1160619,1160626,1160639,1160652,1160720-1160721,1160772,1160774,1160776,1161303,1161310,1161322,1161339,1161486,1161540,1161549,1161584,1162082,1162149,1162169,1162721,1162769,1162836,1162932,1163630,1164419,1164438,1164469,1164480,1164567,1165234,1165247-1165248,1165253,1165273,1165282,1165309,1165331,1165338,1165347,1165360-1165361,1165367-1165368,1165602,1165608,1165677,1165693,1165721,1165723,1165728,1165730,1165738,1165746,1165765,1165777,1165918,1165921,1166077,1166150-1166151,1166290,1166366,1166620,1166686,1166693,1166752,1166757,1167368,1167394,1169447,1170647,1171692,1172233-1172234,1172236,1172269,1172278,1172282,1172556,1172610,1172664,1172689,1172711,1173020-1173021,1173082,1173088,1173090,1173096 ,1173241,1173256,1173288,1173333,1173342,1173461,1173614,1173630,1173659,1173722,1174061,1174239,1174322,1174325,1174329-1174330,1174337-1174339,1174343,1174353,1174799,1174882,1174884,1174983,1175155,1175158,1175167,1175182,1175190,1175201,1175272,1175275,1175283,1175582,1175589-1175590,1175594,1175602,1175613,1175633,1175690,1175713,1175798,1175889,1175896,1175907,1176584,1176590,1176799,1177050,1177060,1177125,1177152,1177160,1177245,1177850,1177862,1177978,1178209,1178228,1178233,1178449,1178542,1178681,1178684,1178721,1179268,1179274,1180261,1180865,1180891,1180894,1180907,1181028,1181123,1181125,1181136,1181291,1181743,1182796,1183078,1183105,1183142,1183328,1183339-1183340,1183492-1183494,1183605,1184917,1184919,1185018,1185020,1185200,1185588,1185626,1185756,1185758,1186011,1186042-1186045,1186104,1186123,1186137,1186153,1186254,1186257,1186377-1186379,1186479-1186480,1186712,1186743,1186750,1186763,1186890-1186892,1186894,1186949,1187018,1187027-1187028,1187381,1187 753,1187755,1187775,1187801,1187806,1187809,1187827,1188301,1188303-1188305,1188399,1188822,1188930-1188931,1189116,1189129,1189183,1189240,1189256,1189386,1189413-1189414,1189477,1189685,1189805,1189857,1189864,1189882,1190034,1190185,1190279,1190339,1190371,1190388-1190389,1190474,1190481,1194915,1195222-1195223,1195531,1195899,1195905,1195943,1195949,1195953,1195955,1195965,1195968,1196175,1196212,1196223,1196304-1196305,1196735,1196825,1196827,1197158,1197261,1197263,1197299-1197300,1197305,1197339-1197340,1197343,1197382,1197386-1197387,1197480,1197578,1198497,1198528,1198552,1198602,1198604,1198607,1198622,1198640,1198696,1198707,1199418,1199432,1199436,1199513,1199529,1199980,1199996,1200056,1200089,1200106-1200107,1200263,1200316,1200320,1200398-1200399,1200445-1200446,1200555,1200627,1200696,1200725,1200937,1200941,1201069,1201087,1201180,1201235-1201237,1201508,1201521,1201542,1201545-1201546,1201548,1201555-1201556,1201568,1201576,1201608,1201921-1201922,1201931,1 202035,1202039,1202271,1202565 Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/filters/RequestFilter.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/filters/RequestFilter.java?rev=1202570&r1=1202569&r2=1202570&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/filters/RequestFilter.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/filters/RequestFilter.java Wed Nov 16 08:02:09 2011 @@ -75,6 +75,12 @@ public abstract class RequestFilter protected Pattern deny = null; /** + * The HTTP response status code that is used when rejecting denied + * request. It is 403 by default, but may be changed to be 404. + */ + protected int denyStatus = HttpServletResponse.SC_FORBIDDEN; + + /** * mime type -- "text/plain" */ private static final String PLAIN_TEXT_MIME_TYPE = "text/plain"; @@ -137,6 +143,22 @@ public abstract class RequestFilter } + /** + * Return response status code that is used to reject denied request. + */ + public int getDenyStatus() { + return denyStatus; + } + + + /** + * Set response status code that is used to reject denied request. + */ + public void setDenyStatus(int denyStatus) { + this.denyStatus = denyStatus; + } + + // --------------------------------------------------------- Public Methods @@ -187,8 +209,7 @@ public abstract class RequestFilter chain.doFilter(request, response); } else { if (response instanceof HttpServletResponse) { - ((HttpServletResponse) response) - .sendError(HttpServletResponse.SC_FORBIDDEN); + ((HttpServletResponse) response).sendError(denyStatus); } else { sendErrorWhenNotHttp(response); } @@ -213,7 +234,7 @@ public abstract class RequestFilter if (isAllowed(property)) { chain.doFilterEvent(event); } else { - response.sendError(HttpServletResponse.SC_FORBIDDEN); + response.sendError(denyStatus); event.close(); } } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/RequestFilterValve.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/RequestFilterValve.java?rev=1202570&r1=1202569&r2=1202570&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/RequestFilterValve.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/RequestFilterValve.java Wed Nov 16 08:02:09 2011 @@ -122,6 +122,12 @@ public abstract class RequestFilterValve protected volatile boolean denyValid = true; + /** + * The HTTP response status code that is used when rejecting denied + * request. It is 403 by default, but may be changed to be 404. + */ + protected int denyStatus = HttpServletResponse.SC_FORBIDDEN; + // ------------------------------------------------------------- Properties @@ -212,6 +218,22 @@ public abstract class RequestFilterValve /** + * Return response status code that is used to reject denied request. + */ + public int getDenyStatus() { + return denyStatus; + } + + + /** + * Set response status code that is used to reject denied request. + */ + public void setDenyStatus(int denyStatus) { + this.denyStatus = denyStatus; + } + + + /** * Return descriptive information about this Valve implementation. */ @Override @@ -285,10 +307,25 @@ public abstract class RequestFilterValve } // Deny this request - response.sendError(HttpServletResponse.SC_FORBIDDEN); + denyRequest(request, response); } + + /** + * Reject the request that was denied by this valve. + * + * @param request The servlet request to be processed + * @param response The servlet response to be processed + * @exception IOException if an input/output error occurs + * @exception ServletException if a servlet error occurs + */ + protected void denyRequest(Request request, Response response) + throws IOException, ServletException { + response.sendError(denyStatus); + } + + /** * Perform the test implemented by this Valve, matching against the * specified request property value. This method is public so that it can be Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/mbeans-descriptors.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/mbeans-descriptors.xml?rev=1202570&r1=1202569&r2=1202570&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/mbeans-descriptors.xml (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/mbeans-descriptors.xml Wed Nov 16 08:02:09 2011 @@ -356,6 +356,10 @@ description="The deny expression" type="java.lang.String"/> + <attribute name="denyStatus" + description="HTTP response status that is used when rejecting denied request" + type="int"/> + <attribute name="denyValid" description="Becomes false if assigned value of deny expression is not syntactically correct" is="true" @@ -412,6 +416,10 @@ description="The deny expression" type="java.lang.String"/> + <attribute name="denyStatus" + description="HTTP response status code that is used when rejecting denied request" + type="int"/> + <attribute name="denyValid" description="Becomes false if assigned value of deny expression is not syntactically correct" is="true" Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1202570&r1=1202569&r2=1202570&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Nov 16 08:02:09 2011 @@ -229,6 +229,14 @@ <bug>52173</bug>: Improve Javadoc for <code>delegate</code> attribute of WebappClassLoader. Based on a patch by bmargulies. (markt) </fix> + <add> + Add <code>denyStatus</code> attribute to <code>RequestFilterValve</code> + (<code>RemoteAddrValve</code>, <code>RemoteHostValve</code> valves) and + <code>RequestFilter</code> (<code>RemoteAddrFilter</code>, + <code>RemoteHostFilter</code> filters). It allows to use different + HTTP response code when rejecting denied request. E.g. 404 instead + of 403. (kkolinko) + </add> </changelog> </subsection> <subsection name="Coyote"> Modified: tomcat/tc7.0.x/trunk/webapps/docs/config/filter.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/config/filter.xml?rev=1202570&r1=1202569&r2=1202570&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/config/filter.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/config/filter.xml Wed Nov 16 08:02:09 2011 @@ -577,6 +577,12 @@ FINE: Request "/docs/config/manager.html governed solely by the <code>accept</code> attribute.</p> </attribute> + <attribute name="denyStatus" required="false"> + <p>HTTP response status code that is used when rejecting denied + request. The default value is <code>403</code>. For example, + it can be set to the value <code>404</code>.</p> + </attribute> + </attributes> </subsection> @@ -651,6 +657,12 @@ FINE: Request "/docs/config/manager.html governed solely by the <code>accept</code> attribute.</p> </attribute> + <attribute name="denyStatus" required="false"> + <p>HTTP response status code that is used when rejecting denied + request. The default value is <code>403</code>. For example, + it can be set to the value <code>404</code>.</p> + </attribute> + </attributes> </subsection> Modified: tomcat/tc7.0.x/trunk/webapps/docs/config/valve.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/config/valve.xml?rev=1202570&r1=1202569&r2=1202570&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/config/valve.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/config/valve.xml Wed Nov 16 08:02:09 2011 @@ -550,6 +550,12 @@ governed solely by the <code>accept</code> attribute.</p> </attribute> + <attribute name="denyStatus" required="false"> + <p>HTTP response status code that is used when rejecting denied + request. The default value is <code>403</code>. For example, + it can be set to the value <code>404</code>.</p> + </attribute> + </attributes> </subsection> @@ -615,6 +621,12 @@ governed solely by the <code>accept</code> attribute.</p> </attribute> + <attribute name="denyStatus" required="false"> + <p>HTTP response status code that is used when rejecting denied + request. The default value is <code>403</code>. For example, + it can be set to the value <code>404</code>.</p> + </attribute> + </attributes> </subsection> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org