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

Reply via email to