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();
}
}