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, "");
  

Reply via email to