[ 
https://issues.apache.org/jira/browse/WW-5468?focusedWorklogId=937733&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-937733
 ]

ASF GitHub Bot logged work on WW-5468:
--------------------------------------

                Author: ASF GitHub Bot
            Created on: 12/Oct/24 12:06
            Start Date: 12/Oct/24 12:06
    Worklog Time Spent: 10m 
      Work Description: kusalk commented on code in PR #1072:
URL: https://github.com/apache/struts/pull/1072#discussion_r1797691170


##########
core/src/main/java/org/apache/struts2/interceptor/parameter/ParametersInterceptor.java:
##########
@@ -348,7 +349,15 @@ protected boolean isParameterAnnotatedAndAllowlist(String 
name, Object action) {
         }
 
         long paramDepth = name.codePoints().mapToObj(c -> (char) 
c).filter(NESTING_CHARS::contains).count();
+
+        if (action instanceof ModelDriven<?> && 
!ActionContext.getContext().getValueStack().peek().equals(action)) {
+            LOG.debug("Model driven Action detected, exempting from 
@StrutsParameter annotation requirement and OGNL allowlisting model type");
+            // (Exempted by annotation on 
com.opensymphony.xwork2.ModelDriven#getModel)
+            return hasValidAnnotatedMember("model", action, paramDepth + 1);

Review Comment:
   This conditional block and the added annotation on the `ModelDriven` 
interface comprise the core fix





Issue Time Tracking
-------------------

    Worklog Id:     (was: 937733)
    Time Spent: 1h 40m  (was: 1.5h)

> ModelDriven is not compatible with @StrutsParameter
> ---------------------------------------------------
>
>                 Key: WW-5468
>                 URL: https://issues.apache.org/jira/browse/WW-5468
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 7.0.0
>            Reporter: Lukasz Lenart
>            Priority: Major
>             Fix For: 7.0.0
>
>          Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> Currently if a Struts webapp uses {{ModelDriven<T>}} it won't be possible to 
> use {{@StrutsParameter}} annotation on {{#getModel()}} getter.
> Use rest-angular as example
> https://github.com/apache/struts-examples/blob/master/rest-angular/src/main/resources/struts.xml#L13



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to