diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java b/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java index de37f0a7c..abc69ebb5 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java @@ -198,8 +198,9 @@ public class ServletRedirectResult extends StrutsResultSupport implements Reflec if (resultConfig != null) { Map resultConfigParams = resultConfig.getParams(); + List prohibitedResultParams = getProhibitedResultParams(); for (Map.Entry e : resultConfigParams.entrySet()) { - if (!getProhibitedResultParams().contains(e.getKey())) { + if (!prohibitedResultParams.contains(e.getKey())) { String potentialValue = e.getValue() == null ? "" : conditionalParse(e.getValue(), invocation); if (!suppressEmptyParameters || ((potentialValue != null) && (potentialValue.length() > 0))) { requestParameters.put(e.getKey(), potentialValue); @@ -227,7 +228,18 @@ public class ServletRedirectResult extends StrutsResultSupport implements Reflec } protected List getProhibitedResultParams() { - return Arrays.asList(DEFAULT_PARAM, "namespace", "method", "encode", "parse", "location", "prependServletContext", "suppressEmptyParameters", "anchor"); + return Arrays.asList( + DEFAULT_PARAM, + "namespace", + "method", + "encode", + "parse", + "location", + "prependServletContext", + "suppressEmptyParameters", + "anchor", + "statusCode" + ); } /** diff --git a/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java b/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java index 6be315bf3..30871f5df 100644 --- a/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java +++ b/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java @@ -183,6 +183,7 @@ public class ServletRedirectResultTest extends StrutsTestCase implements StrutsS .addParam("location", "someLocation") .addParam("prependServletContext", "true") .addParam("method", "someMethod") + .addParam("statusCode", "333") .addParam("param1", "value 1") .addParam("param2", "value 2") .addParam("param3", "value 3") @@ -221,7 +222,6 @@ public class ServletRedirectResultTest extends StrutsTestCase implements StrutsS result.setActionMapper(container.getInstance(ActionMapper.class)); result.execute(mockInvocation); assertEquals("/myNamespace/myAction.action?param1=value+1¶m2=value+2¶m3=value+3#fragment", res.getRedirectedUrl()); - control.verify(); }