You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2009/10/15 16:07:31 UTC
svn commit: r825500 -
/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java
Author: fmeschbe
Date: Thu Oct 15 14:07:31 2009
New Revision: 825500
URL: http://svn.apache.org/viewvc?rev=825500&view=rev
Log:
SLING-1003 Ensure request and response objects are Sling types before
calling the next filter or getting out of the chain
Modified:
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java
Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java?rev=825500&r1=825499&r2=825500&view=diff
==============================================================================
--- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java (original)
+++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java Thu Oct 15 14:07:31 2009
@@ -46,20 +46,21 @@
throws ServletException, IOException {
this.current++;
+ // the previous filter may have wrapped non-Sling request and response
+ // wrappers (e.g. WebCastellum does this), so we have to make
+ // sure the request and response are Sling types again
+ SlingHttpServletRequest slingRequest = toSlingRequest(request);
+ SlingHttpServletResponse slingResponse = toSlingResponse(response);
+
if (this.current < this.filters.length) {
// continue filtering with the next filter
Filter filter = this.filters[this.current];
- trackFilter(request, filter);
- filter.doFilter(request, response, this);
+ trackFilter(slingRequest, filter);
+ filter.doFilter(slingRequest, slingResponse, this);
} else {
- // end of chain, a filter may have wrapped a plain ServletRequest
- // and we must ensure it is a Sling request again
- SlingHttpServletRequest slingRequest = toSlingRequest(request);
- SlingHttpServletResponse slingResponse = toSlingResponse(response);
-
this.render(slingRequest, slingResponse);
}