This is an automated email from the ASF dual-hosted git repository.
gk pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/turbine-core.git
The following commit(s) were added to refs/heads/trunk by this push:
new ab361592 Static compile pattern, explain key check in more details (in
javadoc), reformat log messages
ab361592 is described below
commit ab3615926c7511774f703189456c1194a62967a0
Author: gk <[email protected]>
AuthorDate: Mon Feb 24 12:30:36 2025 +0100
Static compile pattern, explain key check in more details (in javadoc),
reformat log messages
---
.../org/apache/turbine/pipeline/DetermineActionValve.java | 2 +-
.../org/apache/turbine/pipeline/DetermineTargetValve.java | 2 +-
.../assemblerbroker/TurbineAssemblerBrokerService.java | 6 +++---
src/java/org/apache/turbine/util/HttpUtils.java | 13 ++++++++-----
4 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/src/java/org/apache/turbine/pipeline/DetermineActionValve.java
b/src/java/org/apache/turbine/pipeline/DetermineActionValve.java
index f01cc126..85ee065f 100644
--- a/src/java/org/apache/turbine/pipeline/DetermineActionValve.java
+++ b/src/java/org/apache/turbine/pipeline/DetermineActionValve.java
@@ -65,7 +65,7 @@ public class DetermineActionValve
{
String testAction = HttpUtils.getCleanedKey( action );
String message = URIConstants.CGI_ACTION_PARAM + " has
invalid characters. ";
- log.warn(message + "Debug action key:" + testAction);
+ log.warn("{}. Debug action key: {}.", message, testAction);
throw new TurbineException( message );
}
data.setAction(action);
diff --git a/src/java/org/apache/turbine/pipeline/DetermineTargetValve.java
b/src/java/org/apache/turbine/pipeline/DetermineTargetValve.java
index 837c91ac..b6f8bb58 100644
--- a/src/java/org/apache/turbine/pipeline/DetermineTargetValve.java
+++ b/src/java/org/apache/turbine/pipeline/DetermineTargetValve.java
@@ -65,7 +65,7 @@ public class DetermineTargetValve implements Valve
{
String testAction = HttpUtils.getCleanedKey( target );
String message = URIConstants.CGI_SCREEN_PARAM + " has
invalid characters. ";
- log.warn(message + "Debug action key:" + testAction );
+ log.warn("{}. Debug action key: {}.", message, testAction);
throw new TurbineException( message );
}
runData.setScreen(target);
diff --git
a/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
b/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
index ad43d671..4da33b9a 100644
---
a/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
+++
b/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
@@ -216,11 +216,11 @@ public class TurbineAssemblerBrokerService
String key = type + ":" + name;
T assembler = null;
- log.debug("Check key {} in assembler", key);
+ log.debug("Check name in key {} in assembler.", key);
if (HttpUtils.keyRequiresClean( name ))
{
- String message = "Assembler key has invalid characters. Abort
assembling for " + key;
- log.warn(message );
+ String message = "Assembler key has invalid characters.";
+ log.warn("{}. Abort assembling for cleaned key {}:{}.", message,
type, HttpUtils.getCleanedKey( name ) );
throw new TurbineException( message );
}
diff --git a/src/java/org/apache/turbine/util/HttpUtils.java
b/src/java/org/apache/turbine/util/HttpUtils.java
index 853c9a87..c142cce8 100644
--- a/src/java/org/apache/turbine/util/HttpUtils.java
+++ b/src/java/org/apache/turbine/util/HttpUtils.java
@@ -41,9 +41,12 @@ import jakarta.servlet.http.HttpServletResponse;
public class HttpUtils
{
/**
- * Characters not allowed in keys, that is not alphanumeric, underscore,
hyphen, slash and dot.
+ * Characters not allowed in external keys (name), that is not
alphanumeric, underscore, hyphen, slash and dot.
+ * Validates only external key (name), as internal key may also contain
colon and space.
*/
private static final String CHARACTERS_NOT_ALLOWED_IN_KEY = "[^\\w_/\\.-]";
+
+ private static final Pattern CNAIK_PATTERN =
Pattern.compile(CHARACTERS_NOT_ALLOWED_IN_KEY);
/**
* The date format to use for HTTP Dates.
*/
@@ -90,19 +93,19 @@ public class HttpUtils
}
/**
- * Check if there is any not allowed {@value
#CHARACTERS_NOT_ALLOWED_IN_KEY}
- * in parameters, eg. Turbine keys like actions, screens, layouts, .
+ * Check, if there is any not allowed {@value
#CHARACTERS_NOT_ALLOWED_IN_KEY}
+ * in parameters, eg. Turbine keys like actions, screens, layouts.
*
* @param parameter or key to be checked
* @return True, if it contains any non allowed characters
*/
public static boolean keyRequiresClean(String parameter) {
- Matcher testMatcher =
Pattern.compile(CHARACTERS_NOT_ALLOWED_IN_KEY).matcher(parameter);
+ Matcher testMatcher = CNAIK_PATTERN.matcher(parameter);
return testMatcher.find();
}
/**
- * Cleans parameter/key from disallowed chaacters defined as {@link
#CHARACTERS_NOT_ALLOWED_IN_KEY}.
+ * Cleans parameter/key from disallowed characters defined in {@link
#CHARACTERS_NOT_ALLOWED_IN_KEY}.
*
* @param parameter to be cleaned
* @return the cleaned parameter