diff options
author | istvansajtos | 2016-03-29 10:25:16 +0000 |
---|---|---|
committer | Raymond Auge | 2016-05-13 15:27:20 +0000 |
commit | 1593ffc5311c0257888cb9272ffb05f075eee717 (patch) | |
tree | de6bf4f9be2c18b4b16e42f54e2d64e930445455 /bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java | |
parent | 364fa1fcdf3a202e7df3209024249e461af0183f (diff) | |
download | rt.equinox.bundles-1593ffc5311c0257888cb9272ffb05f075eee717.tar.gz rt.equinox.bundles-1593ffc5311c0257888cb9272ffb05f075eee717.tar.xz rt.equinox.bundles-1593ffc5311c0257888cb9272ffb05f075eee717.zip |
Bug 490608 - [http servlet] Ignore status code and header change attempts for include dispatch
Signed-off-by: Istvan Sajtos <istvan.sajtos@liferay.com>
Diffstat (limited to 'bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java')
-rw-r--r-- | bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java index 3fc8e1ec3..f98512250 100644 --- a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java +++ b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/context/DispatchTargets.java @@ -7,6 +7,7 @@ * * Contributors: * Raymond Augé <raymond.auge@liferay.com> - Bug 436698 + * Istvan Sajtos <istvan.sajtos@liferay.com> - Bug 490608 ******************************************************************************/ package org.eclipse.equinox.http.servlet.internal.context; @@ -15,8 +16,7 @@ import java.io.*; import java.net.URLDecoder; import java.util.*; import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.*; import org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration; import org.eclipse.equinox.http.servlet.internal.registration.FilterRegistration; import org.eclipse.equinox.http.servlet.internal.servlet.*; @@ -119,6 +119,20 @@ public class DispatchTargets { requestWrapper.push(this); + if (dispatcherType == DispatcherType.INCLUDE) { + HttpServletResponse previous = null; + HttpServletResponse next = response; + + while (next instanceof HttpServletResponseWrapper) { + previous = next; + next = (HttpServletResponse) ((HttpServletResponseWrapper) next).getResponse(); + } + + IncludeDispatchResponseWrapper includeResponse = new IncludeDispatchResponseWrapper(next); + + ((HttpServletResponseWrapper) previous).setResponse(includeResponse); + } + ResponseStateHandler responseStateHandler = new ResponseStateHandler(request, response, this); responseStateHandler.processRequest(); |