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