[ 
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)

Reply via email to