cmailleux 2005/07/13 16:56:37 CEST
Modified files:
war/src/java/com/codeva/webapps/webclipping/servlet
WebClippingServlet.java
Log:
Correct encoding problem to ensure that we send data in the encoding expected
by the clipped url
Revision Changes Path
1.15 +20 -4
webclipping/war/src/java/com/codeva/webapps/webclipping/servlet/WebClippingServlet.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclipping/war/src/java/com/codeva/webapps/webclipping/servlet/WebClippingServlet.java.diff?r1=1.14&r2=1.15&f=h
Index: WebClippingServlet.java
===================================================================
RCS file:
/home/cvs/repository/webclipping/war/src/java/com/codeva/webapps/webclipping/servlet/WebClippingServlet.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- WebClippingServlet.java 13 Jul 2005 09:51:29 -0000 1.14
+++ WebClippingServlet.java 13 Jul 2005 14:56:36 -0000 1.15
@@ -19,6 +19,8 @@
import java.net.URL;
import java.net.URLEncoder;
import java.util.*;
+import java.util.regex.Pattern;
+import java.util.regex.Matcher;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;
@@ -45,8 +47,8 @@
static private final String MAP_SITE_URL_METHOD = "siteURLMethod";
static private final String MAP_SITE_URL_PARAMS = "siteURLParameters";
static private final String MAP_ACCESSIBLE_HOSTS = "accessibleHost";
-
-
+ static private final String MAP_REFERER = "referer";
+ static private Pattern pattern =
Pattern.compile("(.*/(pid/[0-9]*))(.*)",Pattern.UNICODE_CASE&Pattern.DOTALL);
public WebClippingServlet() {
HTPP_CONNECTION_MANAGER.getParams().setMaxTotalConnections(200);
HTPP_CONNECTION_MANAGER.getParams().setDefaultMaxConnectionsPerHost(50);
@@ -514,10 +516,24 @@
if (accessibleHostsStr != null &&
!"".equals(accessibleHostsStr.trim())) {
map.put(MAP_ACCESSIBLE_HOSTS,
Arrays.asList(accessibleHostsStr.split(",")));
}
+ map.put(MAP_REFERER,request.getHeader("referer"));
//
return true;
}
-
+ String s = (String) map.get(MAP_REFERER);
+ if(s!=null) {
+ Matcher matcher = pattern.matcher(s);
+ String mapReferer = null;
+ String referer = null;
+ if(matcher.find())
+ mapReferer = matcher.group(2);
+ matcher = pattern.matcher(request.getHeader("referer"));
+ if(matcher.find())
+ referer = matcher.group(2);
+ if(mapReferer==null || !mapReferer.equals(referer)) {
+ map.remove(MAP_SITE_URL);
+ }
+ }
//
// No Reinit, The request has no URL => Check map
// Usually when an action is performed on another portlet in the
same page
@@ -537,7 +553,7 @@
perfLog.debug("->Preferences has URL " + contextId);
//
map.put(MAP_SITE_URL, siteUrl);
- map.put(MAP_SITE_URL_METHOD, method);
+ map.put(MAP_SITE_URL_METHOD, "GET");
map.put(MAP_SITE_URL_PARAMS, null);
//
String accessibleHostsStr =
preferences.get("list_accessible_host_" + contextId, "");