From 095223c0d6fa9acd9bffa10a663bd69865554bd5 Mon Sep 17 00:00:00 2001 From: Costantino Perciante Date: Wed, 19 Oct 2016 07:57:31 +0000 Subject: [PATCH] for checking user's token into the request, a set scope to the root is needed git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-catalogue/grsf-publisher-ws@133341 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 12 +++++------- .../grsf_publish_ws/filters/RequestsAuthFilter.java | 9 ++++++++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index 1a6b0c4..120f5e0 100644 --- a/pom.xml +++ b/pom.xml @@ -34,13 +34,6 @@ pom import - - org.gcube.distribution - maven-smartgears-bom - LATEST - pom - import - @@ -80,6 +73,11 @@ authorization-client provided + + org.gcube.common.portal + portal-manager + [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) + org.gcube.common common-authorization diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/filters/RequestsAuthFilter.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/filters/RequestsAuthFilter.java index d6a1fc7..059ea87 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/filters/RequestsAuthFilter.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/filters/RequestsAuthFilter.java @@ -13,6 +13,7 @@ import javax.ws.rs.ext.Provider; import org.gcube.common.authorization.library.AuthorizationEntry; import org.gcube.common.authorization.library.provider.AuthorizationProvider; import org.gcube.common.authorization.library.utils.Caller; +import org.gcube.common.portal.PortalContext; import org.gcube.common.scope.api.ScopeProvider; import org.slf4j.LoggerFactory; @@ -77,15 +78,21 @@ public class RequestsAuthFilter implements ContainerRequestFilter{ * @return null if validation fails */ private static AuthorizationEntry validateToken(String token){ + AuthorizationEntry res = null; + try { - + + // set the root scope + ScopeProvider.instance.set("/" + PortalContext.getConfiguration().getInfrastructureName()); logger.debug("Validating token " + token); res = authorizationService().get(token); logger.debug("Token seems valid for scope " + res.getContext() + " and user " + res.getClientInfo().getId()); } catch (Exception e) { logger.error("The token is not valid. This request will be rejected!!! (" + token + ")", e); + }finally{ + ScopeProvider.instance.reset(); } return res;