From 27dd85f9870f9f70e7e37edde7ed2cea307ec62c Mon Sep 17 00:00:00 2001 From: alonle Date: Tue, 30 Dec 2014 19:31:16 +0200 Subject: [PATCH 1/2] fix issue with rewrite --- pom.xml | 8 +++++++- .../github/greengerong/PreRenderSEOFilter.java | 2 +- .../com/github/greengerong/PrerenderConfig.java | 6 ++++++ .../github/greengerong/PrerenderSeoService.java | 15 +++++++++++++++ 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 112aab4..34a87f7 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ com.github.greengerong prerender-java - 1.6.4-SNAPSHOT + 1.6.5-SNAPSHOT jar prerender-java @@ -38,6 +38,7 @@ 2.5 4.3.1 1.7.5 + 9.0.7.v20131107 @@ -85,6 +86,11 @@ slf4j-api ${slf4j.version} + + org.eclipse.jetty + jetty-server + ${jetty.version} + diff --git a/src/main/java/com/github/greengerong/PreRenderSEOFilter.java b/src/main/java/com/github/greengerong/PreRenderSEOFilter.java index 6eb721f..993e74b 100644 --- a/src/main/java/com/github/greengerong/PreRenderSEOFilter.java +++ b/src/main/java/com/github/greengerong/PreRenderSEOFilter.java @@ -14,7 +14,7 @@ public class PreRenderSEOFilter implements Filter { public static final List PARAMETER_NAMES = Lists.newArrayList("preRenderEventHandler", "proxy", "proxyPort", "prerenderToken", "forwardedURLHeader", "crawlerUserAgents", "extensionsToIgnore", "whitelist", - "blacklist", "prerenderServiceUrl"); + "blacklist", "prerenderServiceUrl","serverName"); private PrerenderSeoService prerenderSeoService; @Override diff --git a/src/main/java/com/github/greengerong/PrerenderConfig.java b/src/main/java/com/github/greengerong/PrerenderConfig.java index e647631..9ec9481 100644 --- a/src/main/java/com/github/greengerong/PrerenderConfig.java +++ b/src/main/java/com/github/greengerong/PrerenderConfig.java @@ -22,6 +22,7 @@ public class PrerenderConfig { private final static Logger log = LoggerFactory.getLogger(PrerenderConfig.class); public static final String PRERENDER_IO_SERVICE_URL = "http://service.prerender.io/"; + public static final String SERVER_NAME = "http://movmix.com"; private Map config; public PrerenderConfig(Map config) { @@ -125,4 +126,9 @@ public String getPrerenderServiceUrl() { final String prerenderServiceUrl = config.get("prerenderServiceUrl"); return isNotBlank(prerenderServiceUrl) ? prerenderServiceUrl : PRERENDER_IO_SERVICE_URL; } + + public String getServerName() { + final String serverName = config.get("serverName"); + return isNotBlank(serverName) ? serverName : SERVER_NAME; + } } diff --git a/src/main/java/com/github/greengerong/PrerenderSeoService.java b/src/main/java/com/github/greengerong/PrerenderSeoService.java index a59b697..7ae4eb4 100644 --- a/src/main/java/com/github/greengerong/PrerenderSeoService.java +++ b/src/main/java/com/github/greengerong/PrerenderSeoService.java @@ -11,6 +11,7 @@ import org.apache.http.message.BasicHeader; import org.apache.http.message.HeaderGroup; import org.apache.http.util.EntityUtils; +import org.eclipse.jetty.server.Request; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -185,6 +186,20 @@ private String getRequestURL(HttpServletRequest request) { return url; } } + //workaround for jetty and rewrite since all url are rewrite to index.html + //and we need the original url. + if (request instanceof org.eclipse.jetty.server.Request){ + StringBuilder result = new StringBuilder(); + String server = prerenderConfig.getServerName(); + int port = request.getServerPort(); + if(port != 80 && port != 443){ + result.append(String.format("%s:%s", server, port)); + }else { + result.append(server); + } + result.append(((Request)request).getUri()); + return result.toString(); + } return request.getRequestURL().toString(); } From 2d7da1a2bdc03a1fb5b385502944a4a384da71ca Mon Sep 17 00:00:00 2001 From: alon levi Date: Fri, 5 Feb 2016 23:45:26 +0200 Subject: [PATCH 2/2] param url --- prerender-java.iml | 5 +++++ .../java/com/github/greengerong/PrerenderSeoService.java | 3 +++ 2 files changed, 8 insertions(+) diff --git a/prerender-java.iml b/prerender-java.iml index cbd3c69..2e997c2 100644 --- a/prerender-java.iml +++ b/prerender-java.iml @@ -22,6 +22,11 @@ + + + + + diff --git a/src/main/java/com/github/greengerong/PrerenderSeoService.java b/src/main/java/com/github/greengerong/PrerenderSeoService.java index 7ae4eb4..15ee9d7 100644 --- a/src/main/java/com/github/greengerong/PrerenderSeoService.java +++ b/src/main/java/com/github/greengerong/PrerenderSeoService.java @@ -357,6 +357,9 @@ private void withPrerenderToken(HttpRequest proxyRequest) { private String getFullUrl(HttpServletRequest request) { final String url = getRequestURL(request); + if(url.contains("?")) { + return url; + } final String queryString = request.getQueryString(); return isNotBlank(queryString) ? String.format("%s?%s", url, queryString) : url; }