From 4142d7a590e83624905ff671d5d09b42952c0c03 Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Fri, 15 Dec 2017 15:49:39 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/branches/data-analysis/tabulardata/tabular-data-service/1.8@160583 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 2 +- .../data/analysis/tabulardata/service/HistoryManagerImpl.java | 3 +++ .../java/org/gcube/data/analysis/tabulardata/utils/Util.java | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d84f009..8513f8c 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.gcube.data.analysis.tabulardata tabular-data-manager - 1.8.1-SNAPSHOT + 1.8.2-SNAPSHOT war diff --git a/src/main/java/org/gcube/data/analysis/tabulardata/service/HistoryManagerImpl.java b/src/main/java/org/gcube/data/analysis/tabulardata/service/HistoryManagerImpl.java index e6320d9..5dd39f0 100644 --- a/src/main/java/org/gcube/data/analysis/tabulardata/service/HistoryManagerImpl.java +++ b/src/main/java/org/gcube/data/analysis/tabulardata/service/HistoryManagerImpl.java @@ -62,6 +62,9 @@ public class HistoryManagerImpl implements HistoryManager{ tabularResource = getUserAuthorizedObject(tabularResourceId, StorableTabularResource.class, entityManager); }catch(NoSuchObjectException e){ throw new NoSuchTabularResourceException(tabularResourceId); + }catch (InternalSecurityException e) { + logger.error("error on authorization",e); + throw e; }finally{ if (entityManager!=null && entityManager.isOpen()) entityManager.close(); diff --git a/src/main/java/org/gcube/data/analysis/tabulardata/utils/Util.java b/src/main/java/org/gcube/data/analysis/tabulardata/utils/Util.java index 975a4f9..dface60 100644 --- a/src/main/java/org/gcube/data/analysis/tabulardata/utils/Util.java +++ b/src/main/java/org/gcube/data/analysis/tabulardata/utils/Util.java @@ -107,10 +107,11 @@ public class Util { public static R getUserAuthorizedObject( T id, Class objectClass, EntityManager entityManager) throws NoSuchObjectException, InternalSecurityException{ String caller = AuthorizationProvider.instance.get().getClient().getId(); + String scope = ScopeProvider.instance.get(); R sTr = entityManager.find(objectClass, id); if (sTr==null || !sTr.getScopes().contains(ScopeProvider.instance.get())) throw new NoSuchObjectException(); if (!sTr.getOwner().equals(caller) && !sTr.getSharedWith().contains(String.format("u(%s)", caller)) && - !sTr.getSharedWith().contains(String.format("g(%s)", caller))) + !sTr.getSharedWith().contains(String.format("g(%s)", scope))) throw new InternalSecurityException(caller+" is not authorized to use "+objectClass.getName()+" with id "+id.toString()); return sTr; }