diff --git a/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/CGI.java b/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/CGI.java index ba56bc7d90c..cbb9370c92c 100644 --- a/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/CGI.java +++ b/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/CGI.java @@ -51,14 +51,23 @@ import org.eclipse.jetty.util.log.Logger; * * The following init parameters are used to configure this servlet: *
- *
cgibinResourceBase
Path to the cgi bin directory if set or it will default to the resource base of the context.
- *
resourceBase
An alias for cgibinResourceBase.
- *
cgibinResourceBaseIsRelative
If true then cgibinResourceBase is relative to the webapp (eg "WEB-INF/cgi")
- *
commandPrefix
may be used to set a prefix to all commands passed to exec. This can be used on systems that need assistance to execute a + *
cgibinResourceBase
+ *
Path to the cgi bin directory if set or it will default to the resource base of the context.
+ *
resourceBase
+ *
An alias for cgibinResourceBase.
+ *
cgibinResourceBaseIsRelative
+ *
If true then cgibinResourceBase is relative to the webapp (eg "WEB-INF/cgi")
+ *
commandPrefix
+ *
may be used to set a prefix to all commands passed to exec. This can be used on systems that need assistance to execute a * particular file type. For example on windows this can be set to "perl" so that perl scripts are executed.
- *
Path
passed to the exec environment as PATH.
- *
ENV_*
used to set an arbitrary environment variable with the name stripped of the leading ENV_ and using the init parameter value
- *
useFullPath
If true, the full URI path within the context is used for the exec command, otherwise a search is done for a partial URL that matches an exec Command
+ *
Path
+ *
passed to the exec environment as PATH.
+ *
ENV_*
+ *
used to set an arbitrary environment variable with the name stripped of the leading ENV_ and using the init parameter value
+ *
useFullPath
+ *
If true, the full URI path within the context is used for the exec command, otherwise a search is done for a partial URL that matches an exec Command
+ *
ignoreExitState
+ *
If true then do not act on a non-zero exec exit status")
*
* */ @@ -196,13 +205,9 @@ public class CGI extends HttpServlet String info = ""; // Search docroot for a matching execCmd - while (path.endsWith("/") && path.length() >= 0) + while ((path.endsWith("/") || !execCmd.exists()) && path.length() >= 0) { - if(!execCmd.exists()) - break; - int index = path.lastIndexOf('/'); - path = path.substring(0,index); info = pathInContext.substring(index,pathInContext.length()); execCmd = new File(_docRoot,path); @@ -571,4 +576,4 @@ public class CGI extends HttpServlet return envMap.toString(); } } -} +} \ No newline at end of file