Author: dbkr
Date: 2006-03-24 03:19:44 +0000 (Fri, 24 Mar 2006)
New Revision: 8295

Modified:
   trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
   trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
   trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java
   trunk/freenet/src/freenet/node/Version.java
Log:
558: Add HTML encoding when inserting bookmark keys / descriptions. Modify 
content filter to allow adding bookmarks.


Modified: trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FproxyToadlet.java   2006-03-24 
02:29:37 UTC (rev 8294)
+++ trunk/freenet/src/freenet/clients/http/FproxyToadlet.java   2006-03-24 
03:19:44 UTC (rev 8295)
@@ -78,7 +78,15 @@

                        RedirectException re = new RedirectException();
                        try {
-                               re.newuri = new URI("/welcome/"+(uri.getQuery() 
== null? "" : "?"+uri.getQuery()));
+                               String querystring = uri.getQuery();
+                               
+                               if (querystring == null) {
+                                       re.newuri = new URI("/welcome/");
+                               } else {
+                                       // TODP possibly a proper URLEncode 
method
+                                       querystring = querystring.replace(" ", 
"+");
+                                       re.newuri = new 
URI("/welcome/?"+querystring);
+                               }
                        } catch (URISyntaxException e) {
                                // HUH!?!
                        }

Modified: trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2006-03-24 
02:29:37 UTC (rev 8294)
+++ trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2006-03-24 
03:19:44 UTC (rev 8295)
@@ -17,6 +17,7 @@
 import freenet.support.Bucket;
 import freenet.support.BucketTools;
 import freenet.support.Logger;
+import freenet.support.HTMLEncoder;

 public class WelcomeToadlet extends Toadlet {
        private static final String[] DEFAULT_BOOKMARKS = {
@@ -167,8 +168,8 @@
                        
buf.append("<i>"+request.getParam("newbookmark")+"</i><br />");
                        buf.append("To your bookmarks, and enter the 
description that you would prefer:<br />\n");
                        buf.append("Description:\n");
-                       buf.append("<input type=\"text\" name=\"name\" 
value=\""+request.getParam("desc")+"\" style=\"width: 100%; \" />\n");
-                       buf.append("<input type=\"hidden\" name=\"newbookmark\" 
value=\""+request.getParam("newbookmark")+"\" />\n");
+                       buf.append("<input type=\"text\" name=\"name\" 
value=\""+HTMLEncoder.encode(request.getParam("desc"))+"\" style=\"width: 100%; 
\" />\n");
+                       buf.append("<input type=\"hidden\" name=\"newbookmark\" 
value=\""+HTMLEncoder.encode(request.getParam("newbookmark"))+"\" />\n");
                        buf.append("<input type=\"submit\" value=\"Add 
Bookmark\" />\n");
                        buf.append("</div>\n");
                        buf.append("</form>\n");
@@ -195,8 +196,8 @@
                while (e.hasMoreElements()) {
                        Bookmark b = (Bookmark)e.nextElement();

-                       buf.append("<a href=\"/"+b.getKey()+"\">");
-                       buf.append(b.getDesc());
+                       buf.append("<a 
href=\"/"+HTMLEncoder.encode(b.getKey())+"\">");
+                       buf.append(HTMLEncoder.encode(b.getDesc()));
                        buf.append("</a><br />\n");
                }


Modified: 
trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java
===================================================================
--- 
trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java    
    2006-03-24 02:29:37 UTC (rev 8294)
+++ 
trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java    
    2006-03-24 03:19:44 UTC (rev 8295)
@@ -7,6 +7,7 @@
 import freenet.keys.FreenetURI;
 import freenet.pluginmanager.HTTPRequest;
 import freenet.support.Logger;
+import freenet.support.HTMLEncoder;

 public class GenericReadFilterCallback implements FilterCallback {

@@ -26,13 +27,25 @@
                        return null;
                }
                String path = uri.getPath();
-               if(path.startsWith("/")) {
+               if (path.startsWith("/") && path.substring(1).indexOf("/") == 
-1) {
+                       // allow links to the root to add bookmarks
+                       HTTPRequest req = new HTTPRequest(uri);
+                       
+                       String bookmark_key = req.getParam("newbookmark");
+                       String bookmark_desc = req.getParam("desc");
+                       
+                       bookmark_key = HTMLEncoder.encode(bookmark_key);
+                       bookmark_desc = HTMLEncoder.encode(bookmark_desc);
+                       
+                       return 
path+"?newbookmark="+bookmark_key+"&desc="+bookmark_desc;
+               } else if(path.startsWith("/")) {
                        // Try to make it into a FreenetURI
                        try {
                                FreenetURI furi = new 
FreenetURI(path.substring(1));
                                return processURI(furi, uri, overrideType);
                        } catch (MalformedURLException e) {
                                // Obviously not a Freenet URI!
+                                       
                        }
                } else {
                        // Relative URI

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-03-24 02:29:37 UTC (rev 
8294)
+++ trunk/freenet/src/freenet/node/Version.java 2006-03-24 03:19:44 UTC (rev 
8295)
@@ -20,7 +20,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 557;
+       private static final int buildNumber = 558;

        /** Oldest build of Fred we will talk to */
        private static final int lastGoodBuild = 507;


Reply via email to