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

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

                Author: ASF GitHub Bot
            Created on: 01/Oct/26 18:44
            Start Date: 01/Oct/26 18:44
    Worklog Time Spent: 10m 
      Work Description: lukaszlenart commented on code in PR #1982:
URL: https://github.com/apache/struts/pull/1982#discussion_r4159153765


##########
core/src/main/java/org/apache/struts2/util/TokenHelper.java:
##########
@@ -133,7 +133,7 @@ public static String getToken(String tokenName) {
         Parameter parameter = params.get(tokenName);
 
         if (!parameter.isDefined()) {
-            LOG.warn("Could not find token mapped to token name: {}", 
tokenName);
+            LOG.warn("Could not find token mapped to token name: {}", 
normalizeSpace(tokenName));

Review Comment:
   issue (non-blocking): one more log call in this flow still logs `tokenName` 
unchanged. In `validToken()`, at line 180:
   
   ```java
   LOG.debug("No token found for token name {} -> Invalid token ", tokenName);
   ```
   
   `tokenName` comes from the `struts.token.name` request parameter through 
`getTokenName()`, so a value containing a line break still splits that debug 
message across several log lines. Wrapping it as `normalizeSpace(tokenName)` 
would make it match the call here and the dev-mode mismatch message. A test 
case with a token name containing `\n` and no matching token parameter would 
cover it.





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

    Worklog Id:     (was: 1045231)
    Time Spent: 20m  (was: 10m)

>  Normalize request-derived values in log messages
> -------------------------------------------------
>
>                 Key: WW-5752
>                 URL: https://issues.apache.org/jira/browse/WW-5752
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 7.3.0
>            Reporter: Gouri Sankar A
>            Priority: Minor
>             Fix For: 7.5.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Request-derived strings are logged unchanged at WARN level in several places, 
> so a decoded line break (for example in a URL path, a parameter name, a 
> request_locale value or a JSON key) produces forged log lines.
> Affected classes: DefaultActionMapper, RestfulActionMapper, 
> ParametersInterceptor, DefaultLocaleProvider, JSONInterceptor, 
> DefaultCspReportAction, TokenHelper.
> Proposed: apply StringUtils.normalizeSpace to these values, as TokenHelper, 
> the multipart classes and ParametersInterceptor already do.



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

Reply via email to