[
https://issues.apache.org/jira/browse/WW-4667?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chris Cranford updated WW-4667:
-------------------------------
Description:
I typically extend the existing stacks with my own interceptor references on an
as needed basis, as shown below.
The problem I face is that when I use the {{paramsPrepareParamsStack}}, I am
noticing that the ParametersInterceptor excludes the custom defined entries on
the first instance of the named {{params}} interceptor; however the second
instance in the stack ignores these settings.
{code}
<interceptor-stack name="customStack">
<interceptor-ref name="myCustomInterceptor" />
<interceptor-ref name="paramsPrepareParamsStack">
<param name="fileUpload.maximumSize">20480000</param>
<param name="params.excludeParams">
dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,parameters\...*,submit,myObject\..*
</param>
</interceptor-ref>
</interceptor-stack>
{code}
I suspect the code is likely just applying the parameters to the first named
instance and breaking the loop rather than making sure _all_ instances of the
named interceptor have the parameters applied correctly during Struts2
bootstrapping.
The only workaround I've found is to avoid using the provided interceptor stack
directly and copy it into my custom stack and explicitly set the excludeParams
explicitly on both _params_ interceptor instances.
was:
I typically extend the existing stacks with my own interceptor references on an
as needed basis, as shown below.
The problem I face is that when I use the {{paramsPrepareParamsStack}}, I am
noticing that the ParametersInterceptor excludes the custom defined entries on
the first instance of the named {{params}} interceptor; however the second
instance in the stack ignores these settings.
{code}
<interceptor-stack name="customStack">
<interceptor-ref name="myCustomInterceptor" />
<interceptor-ref name="paramsPrepareParamsStack">
<param name="fileUpload.maximumSize">20480000</param>
<param
name="params.excludeParams">dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,parameters\...*,submit,myObject\..*</param>
</interceptor-ref>
</interceptor-stack>
{code}
I suspect the code is likely just applying the parameters to the first named
instance and breaking the loop rather than making sure _all_ instances of the
named interceptor have the parameters applied correctly during Struts2
bootstrapping.
The only workaround I've found is to avoid using the provided interceptor stack
directly and copy it into my custom stack and explicitly set the excludeParams
explicitly on both _params_ interceptor instances.
> ParametersInterceptor excludeParams only applies to first instance of params
> interceptor in paramsPrepareParamsStack
> --------------------------------------------------------------------------------------------------------------------
>
> Key: WW-4667
> URL: https://issues.apache.org/jira/browse/WW-4667
> Project: Struts 2
> Issue Type: Bug
> Components: Core Interceptors
> Affects Versions: 2.5.1
> Reporter: Chris Cranford
>
> I typically extend the existing stacks with my own interceptor references on
> an as needed basis, as shown below.
> The problem I face is that when I use the {{paramsPrepareParamsStack}}, I am
> noticing that the ParametersInterceptor excludes the custom defined entries
> on the first instance of the named {{params}} interceptor; however the second
> instance in the stack ignores these settings.
> {code}
> <interceptor-stack name="customStack">
> <interceptor-ref name="myCustomInterceptor" />
> <interceptor-ref name="paramsPrepareParamsStack">
> <param name="fileUpload.maximumSize">20480000</param>
> <param name="params.excludeParams">
>
> dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,parameters\...*,submit,myObject\..*
> </param>
> </interceptor-ref>
> </interceptor-stack>
> {code}
> I suspect the code is likely just applying the parameters to the first named
> instance and breaking the loop rather than making sure _all_ instances of the
> named interceptor have the parameters applied correctly during Struts2
> bootstrapping.
> The only workaround I've found is to avoid using the provided interceptor
> stack directly and copy it into my custom stack and explicitly set the
> excludeParams explicitly on both _params_ interceptor instances.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)