From 983f9ee2b06b85de257b2d5ccc642e45e7cd280c Mon Sep 17 00:00:00 2001 From: Christos Stathis Date: Tue, 20 Mar 2012 14:26:01 +0200 Subject: [PATCH] Removed auth token from url parameters in GET requests --- .../grnet/pithos/web/client/FileContextMenu.java | 2 +- src/gr/grnet/pithos/web/client/FileList.java | 4 +- src/gr/grnet/pithos/web/client/Pithos.java | 148 +++++++++++--------- src/gr/grnet/pithos/web/client/ToolsMenu.java | 2 +- src/gr/grnet/pithos/web/client/VersionsList.java | 2 +- 5 files changed, 85 insertions(+), 73 deletions(-) diff --git a/src/gr/grnet/pithos/web/client/FileContextMenu.java b/src/gr/grnet/pithos/web/client/FileContextMenu.java index b19bde5..19fbaa1 100644 --- a/src/gr/grnet/pithos/web/client/FileContextMenu.java +++ b/src/gr/grnet/pithos/web/client/FileContextMenu.java @@ -249,7 +249,7 @@ public class FileContextMenu extends PopupPanel { @Override public void execute() { for (File f : selectedFiles) - Window.open(app.getApiPath() + f.getOwner() + f.getUri() + "?X-Auth-Token=" + URL.encodeQueryString(app.getToken()), "_blank", ""); + Window.open(app.getApiPath() + f.getOwner() + f.getUri(), "_blank", ""); } })); diff --git a/src/gr/grnet/pithos/web/client/FileList.java b/src/gr/grnet/pithos/web/client/FileList.java index 9cd5d20..007f647 100644 --- a/src/gr/grnet/pithos/web/client/FileList.java +++ b/src/gr/grnet/pithos/web/client/FileList.java @@ -281,7 +281,7 @@ public class FileList extends Composite { sb.append(Templates.INSTANCE.filenameSpan(object.getName())); if (object.getContentType() != null && (object.getContentType().endsWith("png") || object.getContentType().endsWith("gif") || object.getContentType().endsWith("jpeg"))) { sb.appendHtmlConstant(" ") - .append(Templates.INSTANCE.viewLink(app.getApiPath() + object.getOwner() + object.getUri() + "?X-Auth-Token=" + app.getToken(), object.getName())); + .append(Templates.INSTANCE.viewLink(app.getApiPath() + object.getOwner() + object.getUri(), object.getName())); } return sb.toSafeHtml(); @@ -408,7 +408,7 @@ public class FileList extends Composite { if (DOM.eventGetType(event) == Event.ONDBLCLICK) if (getSelectedFiles().size() == 1) { File file = getSelectedFiles().get(0); - Window.open(app.getApiPath() + file.getOwner() + file.getUri() + "?X-Auth-Token=" + URL.encodeQueryString(app.getToken()), "_blank", ""); + Window.open(app.getApiPath() + file.getOwner() + file.getUri(), "_blank", ""); event.preventDefault(); return; } diff --git a/src/gr/grnet/pithos/web/client/Pithos.java b/src/gr/grnet/pithos/web/client/Pithos.java index 4d67a82..6d7d174 100644 --- a/src/gr/grnet/pithos/web/client/Pithos.java +++ b/src/gr/grnet/pithos/web/client/Pithos.java @@ -53,7 +53,6 @@ import gr.grnet.pithos.web.client.rest.GetRequest; import gr.grnet.pithos.web.client.rest.HeadRequest; import gr.grnet.pithos.web.client.rest.PutRequest; import gr.grnet.pithos.web.client.rest.RestException; -import gr.grnet.pithos.web.client.tagtree.Tag; import java.util.ArrayList; import java.util.HashMap; @@ -64,6 +63,7 @@ import java.util.Set; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.Scheduler; +import com.google.gwt.core.client.Scheduler.RepeatingCommand; import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; @@ -459,14 +459,20 @@ public class Pithos implements EntryPoint, ResizeHandler { } }); -// Scheduler.get().scheduleDeferred(new Command() { -// -// @Override -// public void execute() { -// displayError("lalala"); -// -// } -// }); + Scheduler.get().scheduleFixedDelay(new RepeatingCommand() { + + @Override + public boolean execute() { + Folder f = getSelection(); + if (f != null) { + if (getSelectedTree().equals(folderTreeView)) + updateFolder(f, true, null); + else if (getSelectedTree().equals(mysharedTreeView)) + updateSharedFolder(f, true); + } + return true; + } + }, 3000); } public void applyPermissions(Folder f) { @@ -542,7 +548,7 @@ public class Pithos implements EntryPoint, ResizeHandler { String gotoUrl = Window.Location.getParameter("goto"); if (gotoUrl != null && gotoUrl.length() > 0) { - Window.Location.assign(gotoUrl + "?X-Auth-Token=" + token); + Window.Location.assign(gotoUrl); return false; } return true; @@ -1189,64 +1195,70 @@ public class Pithos implements EntryPoint, ResizeHandler { } public void scheduleFolderHeadCommand(final Folder folder, final Command callback) { - HeadRequest headFolder = new HeadRequest(Folder.class, getApiPath(), folder.getOwner(), folder.getUri(), folder) { - - @Override - public void onSuccess(Folder _result) { - if (callback != null) - callback.execute(); - } - - @Override - public void onError(Throwable t) { - if (t instanceof RestException) { - if (((RestException) t).getHttpStatusCode() == Response.SC_NOT_FOUND) { - final String path = folder.getUri(); - PutRequest newFolder = new PutRequest(getApiPath(), folder.getOwner(), path) { - @Override - public void onSuccess(Resource _result) { - scheduleFolderHeadCommand(folder, callback); - } - - @Override - public void onError(Throwable _t) { - GWT.log("", _t); - setError(_t); - if(_t instanceof RestException){ - displayError("Unable to create folder: " + ((RestException) _t).getHttpStatusText()); - } - else - displayError("System error creating folder: " + _t.getMessage()); - } - - @Override - protected void onUnauthorized(Response response) { - sessionExpired(); - } - }; - newFolder.setHeader("X-Auth-Token", getToken()); - newFolder.setHeader("Content-Type", "application/folder"); - newFolder.setHeader("Accept", "*/*"); - newFolder.setHeader("Content-Length", "0"); - Scheduler.get().scheduleDeferred(newFolder); - } - else - displayError("Error heading folder: " + ((RestException) t).getHttpStatusText()); - } - else - displayError("System error heading folder: " + t.getMessage()); - - GWT.log("Error heading folder", t); - setError(t); - } - - @Override - protected void onUnauthorized(Response response) { - sessionExpired(); - } - }; - headFolder.setHeader("X-Auth-Token", getToken()); - Scheduler.get().scheduleDeferred(headFolder); + if (folder == null) { + if (callback != null) + callback.execute(); + } + else { + HeadRequest headFolder = new HeadRequest(Folder.class, getApiPath(), folder.getOwner(), folder.getUri(), folder) { + + @Override + public void onSuccess(Folder _result) { + if (callback != null) + callback.execute(); + } + + @Override + public void onError(Throwable t) { + if (t instanceof RestException) { + if (((RestException) t).getHttpStatusCode() == Response.SC_NOT_FOUND) { + final String path = folder.getUri(); + PutRequest newFolder = new PutRequest(getApiPath(), folder.getOwner(), path) { + @Override + public void onSuccess(Resource _result) { + scheduleFolderHeadCommand(folder, callback); + } + + @Override + public void onError(Throwable _t) { + GWT.log("", _t); + setError(_t); + if(_t instanceof RestException){ + displayError("Unable to create folder: " + ((RestException) _t).getHttpStatusText()); + } + else + displayError("System error creating folder: " + _t.getMessage()); + } + + @Override + protected void onUnauthorized(Response response) { + sessionExpired(); + } + }; + newFolder.setHeader("X-Auth-Token", getToken()); + newFolder.setHeader("Content-Type", "application/folder"); + newFolder.setHeader("Accept", "*/*"); + newFolder.setHeader("Content-Length", "0"); + Scheduler.get().scheduleDeferred(newFolder); + } + else + displayError("Error heading folder: " + ((RestException) t).getHttpStatusText()); + } + else + displayError("System error heading folder: " + t.getMessage()); + + GWT.log("Error heading folder", t); + setError(t); + } + + @Override + protected void onUnauthorized(Response response) { + sessionExpired(); + } + }; + headFolder.setHeader("X-Auth-Token", getToken()); + Scheduler.get().scheduleDeferred(headFolder); + } } public void scheduleFileHeadCommand(File f, final Command callback) { diff --git a/src/gr/grnet/pithos/web/client/ToolsMenu.java b/src/gr/grnet/pithos/web/client/ToolsMenu.java index 1e409c7..febfd67 100644 --- a/src/gr/grnet/pithos/web/client/ToolsMenu.java +++ b/src/gr/grnet/pithos/web/client/ToolsMenu.java @@ -193,7 +193,7 @@ public class ToolsMenu extends PopupPanel { @Override public void execute() { for (File f: files) - Window.open(app.getApiPath() + f.getOwner() + f.getUri() + "?X-Auth-Token=" + URL.encodeQueryString(app.getToken()), "_blank", ""); + Window.open(app.getApiPath() + f.getOwner() + f.getUri(), "_blank", ""); } })); empty = false; diff --git a/src/gr/grnet/pithos/web/client/VersionsList.java b/src/gr/grnet/pithos/web/client/VersionsList.java index c7cbc49..b3634a8 100644 --- a/src/gr/grnet/pithos/web/client/VersionsList.java +++ b/src/gr/grnet/pithos/web/client/VersionsList.java @@ -124,7 +124,7 @@ public class VersionsList extends Composite { downloadHtml.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { - String fileUrl = app.getApiPath() + file.getOwner() + file.getUri() + "?X-Auth-Token=" + app.getToken() + "&version=" + v.getVersion(); + String fileUrl = app.getApiPath() + file.getOwner() + file.getUri() + "?version=" + v.getVersion(); Window.open(fileUrl, "_BLANK", ""); } }); -- 1.7.10.4