Remo Liechti created SLING-12801:
------------------------------------
Summary: SlingEngine does not reset the response and therefor
headers when the violations to the RequestDispatcher include API are checked
Key: SLING-12801
URL: https://issues.apache.org/jira/browse/SLING-12801
Project: Sling
Issue Type: Bug
Components: Engine
Affects Versions: Engine 2.16.2, Engine 3.0.0
Reporter: Remo Liechti
SlingHttpServletResponseImpl.reset checks if the validation is enabled and
resets the response only for non-enabled cases.
For edge cases like error handling, this is wrong. The ErrorFilterChain calls
the reset during the doFilter method to meet the "resetting policy" documented
on:
[https://sling.apache.org/documentation/the-sling-engine/errorhandling.html]
Resetting the Response
{*}Before an ErrorHandler is invoked by the Sling Engine, the response is
resetted{*}. *This removes all headers* and potentially written content. If the
response can't be reset, e.g. when it is already partially committed to the
client, no ErrorHandler will be invoked. In this case the response will be
committed as-is.As the response is reset by Sling Engine, an ErrorHandler must
not reset the response again. Especially as there might be error filters being
invoked before the ErrorHandler.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)