All appropriate headers are url encoded
authorChristos Stathis <chstath@ebs.gr>
Fri, 2 Dec 2011 15:36:34 +0000 (17:36 +0200)
committerChristos Stathis <chstath@ebs.gr>
Fri, 2 Dec 2011 15:36:34 +0000 (17:36 +0200)
12 files changed:
src/gr/grnet/pithos/web/client/FilePropertiesDialog.java
src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java
src/gr/grnet/pithos/web/client/Pithos.java
src/gr/grnet/pithos/web/client/VersionsList.java
src/gr/grnet/pithos/web/client/commands/AddUserCommand.java
src/gr/grnet/pithos/web/client/commands/PasteCommand.java
src/gr/grnet/pithos/web/client/commands/RemoveUserCommand.java
src/gr/grnet/pithos/web/client/commands/RestoreTrashCommand.java
src/gr/grnet/pithos/web/client/commands/ToTrashCommand.java
src/gr/grnet/pithos/web/client/foldertree/AccountResource.java
src/gr/grnet/pithos/web/client/foldertree/File.java
src/gr/grnet/pithos/web/client/foldertree/Folder.java

index 92de14a..9f9e562 100644 (file)
@@ -420,7 +420,7 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
                                }\r
             };\r
             updateFile.setHeader("X-Auth-Token", app.getToken());\r
-            updateFile.setHeader("X-Move-From", file.getUri());\r
+            updateFile.setHeader("X-Move-From", URL.encodePathSegment(file.getUri()));\r
             updateFile.setHeader("Content-Type", file.getContentType());\r
             Scheduler.get().scheduleDeferred(updateFile);\r
         }\r
@@ -478,6 +478,8 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
                 String permHeader = readPermHeader +  ((readPermHeader.length()  > 0 && writePermHeader.length() > 0) ?  ";" : "") + writePermHeader;\r
                 if (permHeader.length() == 0)\r
                     permHeader="~";\r
+                else\r
+                       permHeader = URL.encodePathSegment(permHeader);\r
                 updateFile.setHeader("X-Object-Sharing", permHeader);\r
             }\r
             Scheduler.get().scheduleDeferred(updateFile);\r
index 8035bff..611c0aa 100644 (file)
@@ -52,6 +52,7 @@ import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;\r
 import com.google.gwt.event.dom.client.KeyCodes;\r
 import com.google.gwt.http.client.Response;\r
+import com.google.gwt.http.client.URL;\r
 import com.google.gwt.i18n.client.DateTimeFormat;\r
 import com.google.gwt.user.client.Event.NativePreviewEvent;\r
 import com.google.gwt.user.client.ui.Anchor;\r
@@ -457,7 +458,9 @@ public class FolderPropertiesDialog extends DialogBox {
                 writePermHeader = writePermHeader.substring(0, writePermHeader.length() - 1);\r
             String permHeader = readPermHeader +  ((readPermHeader.length()  > 0 && writePermHeader.length() > 0) ?  ";" : "") + writePermHeader;\r
             if (permHeader.length() == 0)\r
-                permHeader="~";\r
+                permHeader = "~";\r
+            else\r
+               permHeader = URL.encodePathSegment(permHeader);\r
             updateFolder.setHeader("X-Object-Sharing", permHeader);\r
             Scheduler.get().scheduleDeferred(updateFolder);\r
         }\r
index dc5ec4f..b9fb39b 100644 (file)
@@ -987,9 +987,9 @@ public class Pithos implements EntryPoint, ResizeHandler {
                                }
             };
             copyFile.setHeader("X-Auth-Token", getToken());
-            copyFile.setHeader("X-Copy-From", file.getUri());
+            copyFile.setHeader("X-Copy-From", URL.encodePathSegment(file.getUri()));
             if (!file.getOwner().equals(targetUsername))
-               copyFile.setHeader("X-Source-Account", file.getOwner());
+               copyFile.setHeader("X-Source-Account", URL.encodePathSegment(file.getOwner()));
             copyFile.setHeader("Content-Type", file.getContentType());
             Scheduler.get().scheduleDeferred(copyFile);
         }
index 86a50ef..1e546a7 100644 (file)
@@ -47,6 +47,7 @@ import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.http.client.Response;
+import com.google.gwt.http.client.URL;
 import com.google.gwt.i18n.client.DateTimeFormat;
 import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.ui.AbstractImagePrototype;
@@ -156,7 +157,7 @@ public class VersionsList extends Composite {
                        }
                };
                restoreVersion.setHeader("X-Auth-Token", app.getToken());
-               restoreVersion.setHeader("X-Source-Object", file.getUri());
+               restoreVersion.setHeader("X-Source-Object", URL.encodePathSegment(file.getUri()));
                restoreVersion.setHeader("X-Source-Version", String.valueOf(version));
                restoreVersion.setHeader("Content-Range", "bytes 0-/*");
                Scheduler.get().scheduleDeferred(restoreVersion);
index c82874c..05be500 100644 (file)
@@ -101,7 +101,7 @@ public class AddUserCommand implements Command {
                        updateGroup.setHeader("X-Auth-Token", app.getToken());
                        String groupMembers = "";
                        for (String u : group.getMembers())
-                               groupMembers += (u + ",");
+                               groupMembers += (URL.encodePathSegment(u) + ",");
                        updateGroup.setHeader("X-Account-Group-" + URL.encodePathSegment(group.getName()), groupMembers);
                        Scheduler.get().scheduleDeferred(updateGroup);
         }
index a6c8f10..9d344bd 100644 (file)
@@ -48,6 +48,7 @@ import java.util.List;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.http.client.Response;
+import com.google.gwt.http.client.URL;
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.ui.PopupPanel;
 
@@ -157,7 +158,7 @@ public class PasteCommand implements Command {
                                }
             };
             copyFile.setHeader("X-Auth-Token", app.getToken());
-            copyFile.setHeader("X-Move-From", file.getUri());
+            copyFile.setHeader("X-Move-From", URL.encodePathSegment(file.getUri()));
             copyFile.setHeader("Content-Type", file.getContentType());
             Scheduler.get().scheduleDeferred(copyFile);
         }
index d084938..fa72c36 100644 (file)
@@ -101,7 +101,7 @@ public class RemoveUserCommand implements Command {
                String groupMembers = "";
                if (!group.getMembers().isEmpty()) {
                        for (String u : group.getMembers())
-                               groupMembers += (u + ",");
+                               groupMembers += (URL.encodePathSegment(u) + ",");
                }
                else
                        groupMembers = "~";
index a3f220d..936be5e 100644 (file)
@@ -215,7 +215,7 @@ public class RestoreTrashCommand implements Command {
                                }
             };
             untrashFile.setHeader("X-Auth-Token", app.getToken());
-            untrashFile.setHeader("X-Move-From", file.getUri());
+            untrashFile.setHeader("X-Move-From", URL.encodePathSegment(file.getUri()));
             Scheduler.get().scheduleDeferred(untrashFile);
         }
         else if (callback != null) {
index 538d48c..a7411fc 100644 (file)
@@ -218,7 +218,7 @@ public class ToTrashCommand implements Command{
                                }
             };
             trashFile.setHeader("X-Auth-Token", app.getToken());
-            trashFile.setHeader("X-Move-From", file.getUri());
+            trashFile.setHeader("X-Move-From", URL.encodePathSegment(file.getUri()));
             Scheduler.get().scheduleDeferred(trashFile);
         }
         else if (callback != null) {
index e6283e1..39c75bf 100644 (file)
@@ -144,11 +144,11 @@ public class AccountResource extends Resource {
                if (h != null) {
                        String name = h.getName();
                        if (name.startsWith("X-Account-Group-")) {
-                           String groupName = URL.decodePathSegment(name.substring("X-Account-Group-".length())).trim().toLowerCase();
+                           String groupName = URL.decodePathSegment(name.substring("X-Account-Group-".length()));
                            Group g = new Group(groupName);
                            String[] members = h.getValue().split(",");
                            for (String s : members)
-                               g.addMember(s.trim());
+                               g.addMember(URL.decodePathSegment(s).trim());
                            groups.add(g);
                        }
                        else if (name.equals("X-Account-Container-Count")) {
index 3a5c8e5..17cab75 100644 (file)
@@ -224,13 +224,13 @@ public class File extends Resource {
         for (Header h : response.getHeaders()) {
             String header = h.getName();
             if (header.startsWith("X-Object-Meta-"))
-                tags.add(URL.decodePathSegment(header.substring("X-Object-Meta-".length())).trim().toLowerCase());
+                tags.add(URL.decodePathSegment(header.substring("X-Object-Meta-".length())));
             else if (header.equals("X-Object-Sharing")) {
                 String rawPermissions = h.getValue();
-                parsePermissions(rawPermissions);
+                parsePermissions(URL.decodePathSegment(rawPermissions));
             }
             else if (header.equals("X-Object-Shared-By")) {
-                inheritedPermissionsFrom = h.getValue().trim();
+                inheritedPermissionsFrom = URL.decodePathSegment(h.getValue());
             }
         }
     }
index 00edbbf..7000fc1 100644 (file)
@@ -164,7 +164,7 @@ public class Folder extends Resource {
         header = response.getHeader("X-Container-Object-Meta");
         if (header != null && header.length() > 0) {
             for (String t : header.split(",")) {
-                tags.add(URL.decodePathSegment(t.toLowerCase()).trim());
+                tags.add(URL.decodePathSegment(t));
             }
         }