This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/struts.git
The following commit(s) were added to refs/heads/main by this push:
new 8ee415f03 refactor(config): WW-5256 move compress constants to
struts.tag.compress namespace (#1446)
8ee415f03 is described below
commit 8ee415f03deb958da6e01760c23c055aa3ddc646
Author: Lukasz Lenart <[email protected]>
AuthorDate: Sat Dec 6 11:16:08 2025 +0100
refactor(config): WW-5256 move compress constants to struts.tag.compress
namespace (#1446)
Rename struts.compress.* configuration constants to struts.tag.compress.*
to align with established tag-specific configuration patterns (e.g.,
struts.tag.includetag.useResponseEncoding).
Changes:
- STRUTS_COMPRESS_ENABLED: struts.tag.compress.enabled
- STRUTS_COMPRESS_MAX_SIZE: struts.tag.compress.maxSize
- STRUTS_COMPRESS_LOG_MAX_LENGTH: struts.tag.compress.log.maxLength
The struts.tag.* prefix is used for tag-specific configuration,
distinguishing
it from UI component configuration (struts.ui.*) and template engine
configuration (struts.freemarker.*).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Sonnet 4.5 <[email protected]>
---
.../java/org/apache/struts2/StrutsConstants.java | 6 ++---
.../org/apache/struts2/components/Compress.java | 2 +-
.../org/apache/struts2/default.properties | 6 ++---
...press-component-security-implementation-plan.md | 26 +++++++++++-----------
4 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/core/src/main/java/org/apache/struts2/StrutsConstants.java
b/core/src/main/java/org/apache/struts2/StrutsConstants.java
index 7f4963593..9791a89ad 100644
--- a/core/src/main/java/org/apache/struts2/StrutsConstants.java
+++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java
@@ -341,21 +341,21 @@ public final class StrutsConstants {
*
* @since 7.2.0
*/
- public static final String STRUTS_COMPRESS_ENABLED =
"struts.compress.enabled";
+ public static final String STRUTS_COMPRESS_ENABLED =
"struts.tag.compress.enabled";
/**
* Maximum size (in bytes) of body content that can be compressed. Content
exceeding this limit will be skipped without compression.
*
* @since 7.2.0
*/
- public static final String STRUTS_COMPRESS_MAX_SIZE =
"struts.compress.maxSize";
+ public static final String STRUTS_COMPRESS_MAX_SIZE =
"struts.tag.compress.maxSize";
/**
* Maximum length of body content to include in log messages. Content
longer than this will be truncated with length indicator.
*
* @since 7.2.0
*/
- public static final String STRUTS_COMPRESS_LOG_MAX_LENGTH =
"struts.compress.log.maxLength";
+ public static final String STRUTS_COMPRESS_LOG_MAX_LENGTH =
"struts.tag.compress.log.maxLength";
/**
* Extension point for the Struts CompoundRootAccessor
diff --git a/core/src/main/java/org/apache/struts2/components/Compress.java
b/core/src/main/java/org/apache/struts2/components/Compress.java
index 34c2d5008..b605f31eb 100644
--- a/core/src/main/java/org/apache/struts2/components/Compress.java
+++ b/core/src/main/java/org/apache/struts2/components/Compress.java
@@ -39,7 +39,7 @@ import java.io.Writer;
* </p>
* <ul>
* <li>Body content is truncated in log messages to prevent sensitive data
exposure</li>
- * <li>Maximum size limit prevents DoS attacks via large inputs
(configurable via struts.compress.maxSize)</li>
+ * <li>Maximum size limit prevents DoS attacks via large inputs
(configurable via struts.tag.compress.maxSize)</li>
* <li>Regex operations include safeguards against ReDoS attacks</li>
* </ul>
*
diff --git a/core/src/main/resources/org/apache/struts2/default.properties
b/core/src/main/resources/org/apache/struts2/default.properties
index 283a5b1bc..a980196a6 100644
--- a/core/src/main/resources/org/apache/struts2/default.properties
+++ b/core/src/main/resources/org/apache/struts2/default.properties
@@ -212,17 +212,17 @@ struts.freemarker.mru.max.strong.size=0
struts.freemarker.whitespaceStripping=true
### Controls whether the compress tag is enabled globally.
-struts.compress.enabled=true
+struts.tag.compress.enabled=true
### Maximum size (in bytes) of body content that can be compressed.
### Content exceeding this limit will be skipped without compression.
### Default: 10MB (10485760 bytes)
-struts.compress.maxSize=10485760
+struts.tag.compress.maxSize=10485760
### Maximum length of body content to include in log messages.
### Content longer than this will be truncated with length indicator.
### Default: 200 characters
-struts.compress.log.maxLength=200
+struts.tag.compress.log.maxLength=200
### configure the XSLTResult class to use stylesheet caching.
### Set to true for developers and false for production.
diff --git
a/thoughts/shared/research/2025-11-27-compress-component-security-implementation-plan.md
b/thoughts/shared/research/2025-11-27-compress-component-security-implementation-plan.md
index 880cf5706..2fcf9f79a 100644
---
a/thoughts/shared/research/2025-11-27-compress-component-security-implementation-plan.md
+++
b/thoughts/shared/research/2025-11-27-compress-component-security-implementation-plan.md
@@ -55,7 +55,7 @@ Implement security enhancements to address three identified
security issues in t
*
* @since 7.2.0
*/
-public static final String STRUTS_COMPRESS_MAX_SIZE =
"struts.compress.maxSize";
+public static final String STRUTS_COMPRESS_MAX_SIZE =
"struts.tag.compress.maxSize";
/**
* Maximum length of body content to include in log messages.
@@ -64,7 +64,7 @@ public static final String STRUTS_COMPRESS_MAX_SIZE =
"struts.compress.maxSize";
*
* @since 7.2.0
*/
-public static final String STRUTS_COMPRESS_LOG_MAX_LENGTH =
"struts.compress.log.maxLength";
+public static final String STRUTS_COMPRESS_LOG_MAX_LENGTH =
"struts.tag.compress.log.maxLength";
```
**Validation**:
@@ -77,19 +77,19 @@ public static final String STRUTS_COMPRESS_LOG_MAX_LENGTH =
"struts.compress.log
### Phase 2: Default Properties
**File**: `core/src/main/resources/org/apache/struts2/default.properties`
-**Location**: After line 215 (after `struts.compress.enabled=true`)
+**Location**: After line 215 (after `struts.tag.compress.enabled=true`)
**Changes**:
```properties
### Maximum size (in bytes) of body content that can be compressed.
### Content exceeding this limit will be skipped without compression.
### Default: 10MB (10485760 bytes)
-struts.compress.maxSize=10485760
+struts.tag.compress.maxSize=10485760
### Maximum length of body content to include in log messages.
### Content longer than this will be truncated with length indicator.
### Default: 200 characters
-struts.compress.log.maxLength=200
+struts.tag.compress.log.maxLength=200
```
**Validation**:
@@ -297,7 +297,7 @@ private String compressWhitespace(String input, boolean
singleLine) {
* </p>
* <ul>
* <li>Body content is truncated in log messages to prevent sensitive data
exposure</li>
- * <li>Maximum size limit prevents DoS attacks via large inputs
(configurable via struts.compress.maxSize)</li>
+ * <li>Maximum size limit prevents DoS attacks via large inputs
(configurable via struts.tag.compress.maxSize)</li>
* <li>Regex operations include safeguards against ReDoS attacks</li>
* </ul>
*
@@ -512,8 +512,8 @@ truncated to prevent sensitive data from appearing in
logs.</p>
- [ ] Verify naming conventions
### Phase 2: Default Properties
-- [ ] Add `struts.compress.maxSize=10485760`
-- [ ] Add `struts.compress.log.maxLength=200`
+- [ ] Add `struts.tag.compress.maxSize=10485760`
+- [ ] Add `struts.tag.compress.log.maxLength=200`
- [ ] Add descriptive comments
- [ ] Verify property file format
@@ -557,23 +557,23 @@ truncated to prevent sensitive data from appearing in
logs.</p>
### Default Configuration (Recommended)
```properties
-struts.compress.maxSize=10485760
-struts.compress.log.maxLength=200
+struts.tag.compress.maxSize=10485760
+struts.tag.compress.log.maxLength=200
```
### Custom Size Limit (5MB)
```properties
-struts.compress.maxSize=5242880
+struts.tag.compress.maxSize=5242880
```
### Disable Size Limit (Not Recommended)
```properties
-struts.compress.maxSize=0
+struts.tag.compress.maxSize=0
```
### Increase Log Truncation Length
```properties
-struts.compress.log.maxLength=500
+struts.tag.compress.log.maxLength=500
```
---