From 960d89a8371c3b937444b32ad947980ea39434c3 Mon Sep 17 00:00:00 2001 From: David Caruana Date: Fri, 22 Jun 2007 16:39:43 +0000 Subject: [PATCH] - AVM Web Script Sample (browse stores, folders, content) - Fix Web Script issue where urls contained ; (due to tomcat) - Allow AVMScriptStore to be passed through script converters (add serializable) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6071 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/web/scripts/TestWebScriptServer.java | 4 ++-- .../alfresco/web/scripts/WebScriptServletRequest.java | 9 ++++++--- .../alfresco/web/scripts/WebScriptServletRuntime.java | 5 ++++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/source/java/org/alfresco/web/scripts/TestWebScriptServer.java b/source/java/org/alfresco/web/scripts/TestWebScriptServer.java index 8437f4e02b..37653ce6e6 100644 --- a/source/java/org/alfresco/web/scripts/TestWebScriptServer.java +++ b/source/java/org/alfresco/web/scripts/TestWebScriptServer.java @@ -523,8 +523,8 @@ public class TestWebScriptServer req.addParameter(parts[0], (parts.length == 2) ? URLDecoder.decode(parts[1], "UTF-8") : null); } } - String pathInfo = iArgIndex == -1 ? uri : uri.substring(0, iArgIndex); - req.setPathInfo(URLDecoder.decode(pathInfo, "UTF-8")); + String requestURI = "/alfresco/service" + (iArgIndex == -1 ? uri : uri.substring(0, iArgIndex)); + req.setRequestURI(URLDecoder.decode(requestURI, "UTF-8")); } return req; diff --git a/source/java/org/alfresco/web/scripts/WebScriptServletRequest.java b/source/java/org/alfresco/web/scripts/WebScriptServletRequest.java index 9c9f952b84..94e647c399 100644 --- a/source/java/org/alfresco/web/scripts/WebScriptServletRequest.java +++ b/source/java/org/alfresco/web/scripts/WebScriptServletRequest.java @@ -120,8 +120,8 @@ public class WebScriptServletRequest extends WebScriptRequestImpl */ public String getServicePath() { - String pathInfo = req.getPathInfo(); - return getServiceContextPath() + ((pathInfo == null) ? "" : req.getPathInfo()); + String pathInfo = getPathInfo(); + return getServiceContextPath() + ((pathInfo == null) ? "" : pathInfo); } /* (non-Javadoc) @@ -137,7 +137,10 @@ public class WebScriptServletRequest extends WebScriptRequestImpl */ public String getPathInfo() { - return req.getPathInfo(); + // NOTE: Don't use req.getPathInfo() - it truncates the path at first semi-colon in Tomcat + String requestURI = req.getRequestURI(); + String pathInfo = requestURI.substring(getServiceContextPath().length()); + return pathInfo; } /* (non-Javadoc) diff --git a/source/java/org/alfresco/web/scripts/WebScriptServletRuntime.java b/source/java/org/alfresco/web/scripts/WebScriptServletRuntime.java index 5a811a84a4..e60ce36a00 100644 --- a/source/java/org/alfresco/web/scripts/WebScriptServletRuntime.java +++ b/source/java/org/alfresco/web/scripts/WebScriptServletRuntime.java @@ -101,7 +101,10 @@ public class WebScriptServletRuntime extends WebScriptRuntime @Override protected String getScriptUrl() { - return req.getPathInfo(); + // NOTE: Don't use req.getPathInfo() - it truncates the path at first semi-colon in Tomcat + String requestURI = req.getRequestURI(); + String pathInfo = requestURI.substring((req.getContextPath() + req.getServletPath()).length()); + return pathInfo; } /* (non-Javadoc)