diff --git a/.classpath b/.classpath
index 11def0e..ceec4b7 100644
--- a/.classpath
+++ b/.classpath
@@ -27,7 +27,6 @@
-
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 4e4a3ad..cac0df4 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -3,7 +3,9 @@ org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 802055a..82b7d9a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,12 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
# Changelog for org.gcube.data.transfer.data-transfer-plugin-framework
+## [v3.0.0] 2022-06-10
+
+### Features
+
+- porting to smartgears 4
+
## [v2.0.7] 2020-09-07
### Fixes
diff --git a/pom.xml b/pom.xml
index fec691c..ceaab98 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
org.gcube.data.transfer
data-transfer-service
- 2.0.7
+ 3.0.0-SNAPSHOT
war
DataTransferService
@@ -33,7 +33,7 @@
org.gcube.distribution
gcube-smartgears-bom
- 2.0.0
+ 3.0.0-SNAPSHOT
pom
import
diff --git a/src/main/java/org/gcube/data/transfer/service/transfers/engine/impl/CapabilitiesProviderImpl.java b/src/main/java/org/gcube/data/transfer/service/transfers/engine/impl/CapabilitiesProviderImpl.java
index 9e02e43..7eb2bf1 100644
--- a/src/main/java/org/gcube/data/transfer/service/transfers/engine/impl/CapabilitiesProviderImpl.java
+++ b/src/main/java/org/gcube/data/transfer/service/transfers/engine/impl/CapabilitiesProviderImpl.java
@@ -5,7 +5,6 @@ import java.util.HashSet;
import javax.inject.Inject;
import javax.inject.Singleton;
-import org.gcube.common.resources.gcore.GCoreEndpoint;
import org.gcube.data.transfer.model.PluginDescription;
import org.gcube.data.transfer.model.TransferCapabilities;
import org.gcube.data.transfer.model.options.HttpDownloadOptions;
@@ -48,7 +47,7 @@ public class CapabilitiesProviderImpl implements CapabilitiesProvider {
ContainerConfiguration configuration=context.container().configuration();
String hostName=configuration.hostname();
- String id=context.profile(GCoreEndpoint.class).id();
+ String id=context.id();
Integer port=configuration.port();
HashSet meansOfTransfer=new HashSet();
diff --git a/src/main/java/org/gcube/data/transfer/service/transfers/engine/impl/PersistenceProviderImpl.java b/src/main/java/org/gcube/data/transfer/service/transfers/engine/impl/PersistenceProviderImpl.java
index 5396bbf..769d0ab 100644
--- a/src/main/java/org/gcube/data/transfer/service/transfers/engine/impl/PersistenceProviderImpl.java
+++ b/src/main/java/org/gcube/data/transfer/service/transfers/engine/impl/PersistenceProviderImpl.java
@@ -77,12 +77,12 @@ public class PersistenceProviderImpl implements PersistenceProvider {
if(persistenceId.equalsIgnoreCase(Destination.DEFAULT_PERSISTENCE_ID)){
log.debug("Persistence ID is default");
ApplicationContext context=ContextProvider.get();
- toReturn=new File(context.persistence().location());
+ toReturn=new File(context.persistence().getLocation());
}else{
for(ApplicationConfiguration config:ContextProvider.get().container().configuration().apps()){
if(config.context().equals(persistenceId)||config.context().equals("/"+persistenceId)){
log.debug("Found persistence ID {}",persistenceId);
- toReturn= new File(config.persistence().location());
+ toReturn= new File(config.persistence().getLocation());
break;
}
}
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
index ed94dfc..75d9a48 100644
--- 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
@@ -1,11 +1,8 @@
package org.gcube.data.transfer.service.transfers.engine.impl;
-import static org.gcube.common.authorization.client.Constants.authorizationService;
-
import org.gcube.common.authorization.client.exceptions.ObjectNotFound;
-import org.gcube.common.authorization.library.AuthorizationEntry;
-import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
-import org.gcube.common.scope.api.ScopeProvider;
+import org.gcube.common.security.providers.SecretManagerProvider;
+import org.gcube.common.security.secrets.Secret;
import lombok.extern.slf4j.Slf4j;
@@ -24,30 +21,21 @@ public class TokenUtils {
// 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);
- }
- }
+ Secret secret = SecretManagerProvider.instance.get();
+ if(secret!=null) {
+ log.debug("Found valid secret");
+ return secret.getContext();
+ }else
+ throw new RuntimeException("SecretProvider not set");
+
}
public static String getCurrentUser() throws ObjectNotFound, Exception {
- String token=SecurityTokenProvider.instance.get();
- return authorizationService().get(token).getClientInfo().getId();
+ Secret secret = SecretManagerProvider.instance.get();
+ return secret.getOwner().getId();
}
}
diff --git a/src/test/java/org/gcube/data/transfer/service/Accountingtests.java b/src/test/java/org/gcube/data/transfer/service/Accountingtests.java
index e55d26b..1ca9742 100644
--- a/src/test/java/org/gcube/data/transfer/service/Accountingtests.java
+++ b/src/test/java/org/gcube/data/transfer/service/Accountingtests.java
@@ -1,13 +1,47 @@
package org.gcube.data.transfer.service;
-import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
+import java.util.Collections;
+import java.util.Map;
+
+import org.gcube.common.security.Owner;
+import org.gcube.common.security.providers.SecretManagerProvider;
+import org.gcube.common.security.secrets.Secret;
import org.gcube.data.transfer.service.transfers.engine.AccountingManager;
import org.gcube.data.transfer.service.transfers.engine.impl.AccountingManagerImpl;
public class Accountingtests {
public static void main(String[] args) {
- SecurityTokenProvider.instance.set("feda0617-cd9d-4841-b6f0-e047da5d32ed-98187548");
+ SecretManagerProvider.instance.set(new Secret() {
+
+ @Override
+ public boolean isRefreshable() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isExpired() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public Owner getOwner() {
+ return new Owner("guest", Collections.emptyList(), false);
+ }
+
+ @Override
+ public Map getHTTPAuthorizationHeaders() {
+ return Collections.emptyMap();
+ }
+
+ @Override
+ public String getContext() {
+ return "/gcube";
+ }
+ });
+
AccountingManager manager=AccountingManagerImpl.get();
String id=manager.createNewRecord();
manager.setSuccessful(id, true);