From 5aa5300cc06db8d6e45ff1cdee2b053ce6e93f62 Mon Sep 17 00:00:00 2001 From: "lucio.lelii" Date: Mon, 27 Feb 2017 16:57:50 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/Common/authorization-common-library@144376 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 2 +- .../authorization/library/AuthorizedTasks.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dc3b4bf..0dcf5d2 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.gcube.common common-authorization - 2.0.1-SNAPSHOT + 2.0.2-SNAPSHOT authorization service common library diff --git a/src/main/java/org/gcube/common/authorization/library/AuthorizedTasks.java b/src/main/java/org/gcube/common/authorization/library/AuthorizedTasks.java index 7f21c3c..51b8274 100644 --- a/src/main/java/org/gcube/common/authorization/library/AuthorizedTasks.java +++ b/src/main/java/org/gcube/common/authorization/library/AuthorizedTasks.java @@ -5,10 +5,15 @@ import java.util.concurrent.Callable; import org.gcube.common.authorization.library.provider.AuthorizationProvider; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.authorization.library.utils.Caller; +import org.gcube.common.scope.api.ScopeProvider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class AuthorizedTasks { + private static Logger logger= LoggerFactory.getLogger(AuthorizedTasks.class); + /** * Binds a {@link Callable} task to the current scope and user. * @param task the task @@ -21,18 +26,24 @@ public class AuthorizedTasks { final String token = SecurityTokenProvider.instance.get(); + final String scope = ScopeProvider.instance.get(); + return new Callable() { @Override public V call() throws Exception { AuthorizationProvider.instance.set(userCall); SecurityTokenProvider.instance.set(token); + ScopeProvider.instance.set(scope); + try { + logger.info("setting on authorized task scope {} and token {}", scope, token); return task.call(); } finally { AuthorizationProvider.instance.reset(); SecurityTokenProvider.instance.reset(); + ScopeProvider.instance.reset(); } } @@ -51,17 +62,22 @@ public class AuthorizedTasks { final String token = SecurityTokenProvider.instance.get(); + final String scope = ScopeProvider.instance.get(); + return new Runnable() { @Override public void run() { AuthorizationProvider.instance.set(userCall); SecurityTokenProvider.instance.set(token); + ScopeProvider.instance.set(scope); try { + logger.info("setting on authorized task scope {} and token {}", scope, token); task.run(); } finally { AuthorizationProvider.instance.reset(); SecurityTokenProvider.instance.reset(); + ScopeProvider.instance.reset(); } }