fix bug avoiding the download of files
This commit is contained in:
parent
b4cad2e995
commit
04ab828143
22
.classpath
22
.classpath
|
@ -1,5 +1,16 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="optional" value="true"/>
|
<attribute name="optional" value="true"/>
|
||||||
|
@ -13,16 +24,5 @@
|
||||||
<attribute name="test" value="true"/>
|
<attribute name="test" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
|
||||||
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="output" path="target/classes"/>
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,28 +1,51 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<wb-module deploy-name="workspace-widget-portlet">
|
<wb-module deploy-name="workspace-widget-portlet">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||||
|
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<property name="context-root" value="workspace-widget-portlet"/>
|
<property name="context-root" value="workspace-widget-portlet"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<property name="java-output-path" value="/workspace-widget-portlet/target/classes"/>
|
<property name="java-output-path" value="/workspace-widget-portlet/target/classes"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</wb-module>
|
</wb-module>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</project-modules>
|
</project-modules>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
All notable changes to this project will be documented in this file.
|
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).
|
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
|
Removed legacy auth dependency
|
||||||
|
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -13,7 +13,7 @@
|
||||||
<artifactId>workspace-widget-portlet</artifactId>
|
<artifactId>workspace-widget-portlet</artifactId>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
<name>workspace-widget-portlet Portlet</name>
|
<name>workspace-widget-portlet Portlet</name>
|
||||||
<version>1.5.0</version>
|
<version>1.5.0-SNAPSHOT</version>
|
||||||
<description>
|
<description>
|
||||||
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.
|
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.
|
||||||
</description>
|
</description>
|
||||||
|
|
|
@ -12,6 +12,8 @@ import javax.portlet.ResourceResponse;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
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.StreamDescriptor;
|
||||||
import org.gcube.common.storagehub.client.dsl.FileContainer;
|
import org.gcube.common.storagehub.client.dsl.FileContainer;
|
||||||
import org.gcube.common.storagehub.client.dsl.ItemContainer;
|
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.ExternalLink;
|
||||||
import org.gcube.common.storagehub.model.items.ExternalURL;
|
import org.gcube.common.storagehub.model.items.ExternalURL;
|
||||||
import org.gcube.common.storagehub.model.items.Item;
|
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.AuthorizedUser;
|
||||||
import org.gcube.portlets.user.wswidget.shared.Breadcrumb;
|
import org.gcube.portlets.user.wswidget.shared.Breadcrumb;
|
||||||
import org.gcube.portlets.user.wswidget.shared.WSItem;
|
import org.gcube.portlets.user.wswidget.shared.WSItem;
|
||||||
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
|
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.JSONArray;
|
||||||
import com.liferay.portal.kernel.json.JSONFactoryUtil;
|
import com.liferay.portal.kernel.json.JSONFactoryUtil;
|
||||||
import com.liferay.portal.kernel.json.JSONObject;
|
import com.liferay.portal.kernel.json.JSONObject;
|
||||||
|
@ -57,6 +63,17 @@ public class WorkspaceWidget extends MVCPortlet {
|
||||||
//check if is a file download
|
//check if is a file download
|
||||||
if (fileToDownloadId != null) {
|
if (fileToDownloadId != null) {
|
||||||
setAuthorizationToken(resourceRequest);
|
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];
|
String selectedItemId = fileToDownloadId.split("=")[1];
|
||||||
StorageHubClient client = new StorageHubClient();
|
StorageHubClient client = new StorageHubClient();
|
||||||
FileContainer fileContainer = null;
|
FileContainer fileContainer = null;
|
||||||
|
@ -87,7 +104,7 @@ public class WorkspaceWidget extends MVCPortlet {
|
||||||
}
|
}
|
||||||
if (! (item instanceof ExternalURL || item instanceof ExternalLink)) {
|
if (! (item instanceof ExternalURL || item instanceof ExternalLink)) {
|
||||||
|
|
||||||
HttpServletRequest httpReq = PortalUtil.getHttpServletRequest(resourceRequest);
|
|
||||||
ServletResponseUtil.sendFile(httpReq,httpRes, streamDescr.getFileName(), streamDescr.getStream(), "application/download");
|
ServletResponseUtil.sendFile(httpReq,httpRes, streamDescr.getFileName(), streamDescr.getStream(), "application/download");
|
||||||
streamDescr.getStream().close();
|
streamDescr.getStream().close();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue