Issue #1642 - avoid casting to get to (base) Request

This commit is contained in:
Joakim Erdfelt 2017-06-22 12:05:43 -07:00
parent b0e5681451
commit 3aa42d989b
1 changed files with 9 additions and 6 deletions

View File

@ -163,7 +163,7 @@ public class RuleContainer extends Rule
if (_rules==null)
return target;
for (Rule rule : _rules)
{
String applied=rule.matchAndApply(target,request, response);
@ -179,26 +179,29 @@ public class RuleContainer extends Rule
String query = request.getQueryString();
if (query != null)
request.setAttribute(_originalQueryStringAttribute,query);
}
}
// Ugly hack, we should just pass baseRequest into the API from RewriteHandler itself.
Request baseRequest = Request.getBaseRequest(request);
if (_rewriteRequestURI)
{
String encoded=URIUtil.encodePath(applied);
if (rule instanceof Rule.ApplyURI)
((Rule.ApplyURI)rule).applyURI((Request)request,((Request)request).getRequestURI(), encoded);
((Rule.ApplyURI)rule).applyURI(baseRequest, baseRequest.getRequestURI(), encoded);
else
((Request)request).setURIPathQuery(encoded);
baseRequest.setURIPathQuery(encoded);
}
if (_rewritePathInfo)
((Request)request).setPathInfo(applied);
baseRequest.setPathInfo(applied);
target=applied;
if (rule.isHandling())
{
LOG.debug("handling {}",rule);
Request.getBaseRequest(request).setHandled(true);
baseRequest.setHandled(true);
}
if (rule.isTerminating())