diff --git a/src/main/java/org/gcube/data/transfer/service/transfers/engine/PluginManager.java b/src/main/java/org/gcube/data/transfer/service/transfers/engine/PluginManager.java index 61dd53f..bce6c02 100644 --- a/src/main/java/org/gcube/data/transfer/service/transfers/engine/PluginManager.java +++ b/src/main/java/org/gcube/data/transfer/service/transfers/engine/PluginManager.java @@ -15,4 +15,7 @@ public interface PluginManager { public ExecutionReport execute(PluginInvocation invocation,String transferredFile)throws PluginException, PluginNotFoundException; public void shutdown(); public Object getPluginInfo(String pluginID) throws PluginNotFoundException, PluginExecutionException; + + public void initPlugins(); + } diff --git a/src/main/java/org/gcube/data/transfer/service/transfers/engine/impl/TokenUtils.java b/src/main/java/org/gcube/data/transfer/service/transfers/engine/impl/TokenUtils.java new file mode 100644 index 0000000..a7c8f83 --- /dev/null +++ b/src/main/java/org/gcube/data/transfer/service/transfers/engine/impl/TokenUtils.java @@ -0,0 +1,46 @@ +package org.gcube.data.transfer.service.transfers.engine.impl; + +import static org.gcube.common.authorization.client.Constants.authorizationService; + +import org.gcube.common.authorization.library.AuthorizationEntry; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.scope.api.ScopeProvider; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class TokenUtils { + + public static String getCurrentScope(){ + // try{ + // String token=SecurityTokenProvider.instance.get(); + // log.debug("Token is : "+token); + // if(token==null) throw new Exception("Security Token is null"); + // AuthorizationEntry entry = authorizationService().get(token); + // return entry.getContext(); + // }catch(Exception e ){ + // log.debug("Unable to resolve token, checking scope provider..",e); + // return ScopeProvider.instance.get(); + // } + + String scope=ScopeProvider.instance.get(); + if(scope!=null) { + log.debug("Found scope provider {}, skipping token",scope); + return scope; + }else{ + try{ + log.debug("Scope provider not set, reverting to token"); + String token=SecurityTokenProvider.instance.get(); + log.debug("Token is : "+token); + if(token==null) throw new Exception("Security Token is null"); + AuthorizationEntry entry = authorizationService().get(token); + return entry.getContext(); + }catch(Exception e){ + throw new RuntimeException("Unable to evaluate scope ",e); + } + } + + + } + +}