diff --git a/.classpath b/.classpath
index 2998aa3..b5a68b0 100644
--- a/.classpath
+++ b/.classpath
@@ -1,5 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -13,16 +24,5 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index 39e308c..5247f67 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -1,28 +1,51 @@
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
-
-
-
+
+
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 02db75a..1f0e243 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,7 +4,7 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## [v1.5.0] - 2021-04-06
+## [v1.5.0-SNAPSHOT] - 2021-04-06
Removed legacy auth dependency
diff --git a/pom.xml b/pom.xml
index 36e8ecb..03b9a89 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
workspace-widget-portlet
war
workspace-widget-portlet Portlet
- 1.5.0
+ 1.5.0-SNAPSHOT
Workspace Widget Portlet is a small Front-end component looking like G Drive which exposes the content of the user's workspace or VRE Folders in read only mode.
diff --git a/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java b/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java
index 17fc2d5..9cf8a1d 100644
--- a/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java
+++ b/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java
@@ -12,6 +12,8 @@ import javax.portlet.ResourceResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.gcube.common.authorization.library.provider.UmaJWTProvider;
+import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.common.storagehub.client.StreamDescriptor;
import org.gcube.common.storagehub.client.dsl.FileContainer;
import org.gcube.common.storagehub.client.dsl.ItemContainer;
@@ -22,11 +24,15 @@ import org.gcube.common.storagehub.model.exceptions.StorageHubException;
import org.gcube.common.storagehub.model.items.ExternalLink;
import org.gcube.common.storagehub.model.items.ExternalURL;
import org.gcube.common.storagehub.model.items.Item;
+import org.gcube.oidc.rest.JWTToken;
+import org.gcube.portal.oidc.lr62.OIDCUmaUtil;
import org.gcube.portlets.user.wswidget.shared.AuthorizedUser;
import org.gcube.portlets.user.wswidget.shared.Breadcrumb;
import org.gcube.portlets.user.wswidget.shared.WSItem;
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
+import com.liferay.portal.kernel.exception.PortalException;
+import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.json.JSONArray;
import com.liferay.portal.kernel.json.JSONFactoryUtil;
import com.liferay.portal.kernel.json.JSONObject;
@@ -57,6 +63,17 @@ public class WorkspaceWidget extends MVCPortlet {
//check if is a file download
if (fileToDownloadId != null) {
setAuthorizationToken(resourceRequest);
+ String currentContext = Utils.getCurrentContext(resourceRequest);
+ ScopeProvider.instance.set(currentContext);
+ HttpServletRequest httpReq = PortalUtil.getHttpServletRequest(resourceRequest);
+ long userId;
+ try {
+ userId = PortalUtil.getUser(resourceRequest).getUserId();
+ JWTToken umaToken = OIDCUmaUtil.getUMAToken(httpReq, userId, currentContext);
+ UmaJWTProvider.instance.set(umaToken.getRaw());
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
String selectedItemId = fileToDownloadId.split("=")[1];
StorageHubClient client = new StorageHubClient();
FileContainer fileContainer = null;
@@ -87,7 +104,7 @@ public class WorkspaceWidget extends MVCPortlet {
}
if (! (item instanceof ExternalURL || item instanceof ExternalLink)) {
- HttpServletRequest httpReq = PortalUtil.getHttpServletRequest(resourceRequest);
+
ServletResponseUtil.sendFile(httpReq,httpRes, streamDescr.getFileName(), streamDescr.getStream(), "application/download");
streamDescr.getStream().close();
}