Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2015-11-02 01:21:19 +0000
committerGreg Wilkins2015-11-02 01:21:19 +0000
commitcd0cc2ef36a558d948bf26aff4f9e3519da2f823 (patch)
tree98054031f84d70c936b9a3f1364f28be4d39ed12 /jetty-fcgi/fcgi-server/src/main/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServlet.java
parent639753b5ed37778d7231acfe9d52039aed66351e (diff)
parent303f98e38cf1520674333c5a06f0b7e1e7ca98ef (diff)
downloadorg.eclipse.jetty.project-cd0cc2ef36a558d948bf26aff4f9e3519da2f823.tar.gz
org.eclipse.jetty.project-cd0cc2ef36a558d948bf26aff4f9e3519da2f823.tar.xz
org.eclipse.jetty.project-cd0cc2ef36a558d948bf26aff4f9e3519da2f823.zip
Merge branch 'master' into unix-socket
Diffstat (limited to 'jetty-fcgi/fcgi-server/src/main/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServlet.java')
-rw-r--r--jetty-fcgi/fcgi-server/src/main/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServlet.java39
1 files changed, 26 insertions, 13 deletions
diff --git a/jetty-fcgi/fcgi-server/src/main/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServlet.java b/jetty-fcgi/fcgi-server/src/main/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServlet.java
index 20468019e2..8587042304 100644
--- a/jetty-fcgi/fcgi-server/src/main/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServlet.java
+++ b/jetty-fcgi/fcgi-server/src/main/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServlet.java
@@ -70,6 +70,7 @@ public class FastCGIProxyServlet extends AsyncProxyServlet.Transparent
{
public static final String SCRIPT_ROOT_INIT_PARAM = "scriptRoot";
public static final String SCRIPT_PATTERN_INIT_PARAM = "scriptPattern";
+ public static final String ORIGINAL_URI_ATTRIBUTE_INIT_PARAM = "originalURIAttribute";
public static final String FASTCGI_HTTPS_INIT_PARAM = "fastCGI.HTTPS";
private static final String REMOTE_ADDR_ATTRIBUTE = FastCGIProxyServlet.class.getName() + ".remoteAddr";
@@ -81,6 +82,7 @@ public class FastCGIProxyServlet extends AsyncProxyServlet.Transparent
private static final String REQUEST_URI_ATTRIBUTE = FastCGIProxyServlet.class.getName() + ".requestURI";
private Pattern scriptPattern;
+ private String originalURIAttribute;
private boolean fcgiHTTPS;
@Override
@@ -93,6 +95,8 @@ public class FastCGIProxyServlet extends AsyncProxyServlet.Transparent
value = "(.+?\\.php)";
scriptPattern = Pattern.compile(value);
+ originalURIAttribute = getInitParameter(ORIGINAL_URI_ATTRIBUTE_INIT_PARAM);
+
fcgiHTTPS = Boolean.parseBoolean(getInitParameter(FASTCGI_HTTPS_INIT_PARAM));
}
@@ -114,24 +118,33 @@ public class FastCGIProxyServlet extends AsyncProxyServlet.Transparent
proxyRequest.attribute(SERVER_NAME_ATTRIBUTE, request.getServerName());
proxyRequest.attribute(SERVER_ADDR_ATTRIBUTE, request.getLocalAddr());
proxyRequest.attribute(SERVER_PORT_ATTRIBUTE, String.valueOf(request.getLocalPort()));
-
proxyRequest.attribute(SCHEME_ATTRIBUTE, request.getScheme());
- // If we are forwarded or included, retain the original request URI.
- String originalPath = (String)request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI);
- String originalQuery = (String)request.getAttribute(RequestDispatcher.FORWARD_QUERY_STRING);
- if (originalPath == null)
+ // Has the original URI been rewritten ?
+ String originalURI = null;
+ if (originalURIAttribute != null)
+ originalURI = (String)request.getAttribute(originalURIAttribute);
+
+ if (originalURI == null)
{
- originalPath = (String)request.getAttribute(RequestDispatcher.INCLUDE_REQUEST_URI);
- originalQuery = (String)request.getAttribute(RequestDispatcher.INCLUDE_QUERY_STRING);
+ // If we are forwarded or included, retain the original request URI.
+ String originalPath = (String)request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI);
+ String originalQuery = (String)request.getAttribute(RequestDispatcher.FORWARD_QUERY_STRING);
+ if (originalPath == null)
+ {
+ originalPath = (String)request.getAttribute(RequestDispatcher.INCLUDE_REQUEST_URI);
+ originalQuery = (String)request.getAttribute(RequestDispatcher.INCLUDE_QUERY_STRING);
+ }
+ if (originalPath != null)
+ {
+ originalURI = originalPath;
+ if (originalQuery != null)
+ originalURI += "?" + originalQuery;
+ }
}
- if (originalPath != null)
- {
- String originalURI = originalPath;
- if (originalQuery != null)
- originalURI += "?" + originalQuery;
+
+ if (originalURI != null)
proxyRequest.attribute(REQUEST_URI_ATTRIBUTE, originalURI);
- }
// If the Host header is missing, add it.
if (!proxyRequest.getHeaders().containsKey(HttpHeader.HOST.asString()))

Back to the top