diff --git a/pom.xml b/pom.xml index cc23634..665ccc2 100644 --- a/pom.xml +++ b/pom.xml @@ -35,13 +35,13 @@ org.gcube.resources.discovery ic-client - [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) + [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) provided org.gcube.core common-scope - [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) + [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) provided @@ -53,7 +53,7 @@ org.gcube.core common-encryption - [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) + [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) provided diff --git a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java index b3fb36b..386230d 100644 --- a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java @@ -8,9 +8,7 @@ import java.util.Map; import org.gcube.accounting.datamodel.backwardcompatibility.MoveToRecordType; import org.gcube.accounting.datamodel.validations.annotations.ValidOperationResult; -import org.gcube.common.authorization.client.Constants; -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.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.implementation.AbstractRecord; import org.gcube.documentstore.records.implementation.RequiredField; @@ -43,6 +41,7 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe @RequiredField @ValidOperationResult public static final String OPERATION_RESULT = UsageRecord.OPERATION_RESULT; + /* public static String getScopeFromToken(){ String token = SecurityTokenProvider.instance.get(); AuthorizationEntry authorizationEntry; @@ -54,6 +53,7 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe String scope = authorizationEntry.getContext(); return scope; } + */ /** * Initialize variable @@ -62,7 +62,8 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe super.init(); // Backward compatibility try { - this.setScope(getScopeFromToken()); + //this.setScope(getScopeFromToken()); + this.setScope(ScopeProvider.instance.get()); } catch(Exception e) { logger.warn("Unable to automaticcally set the scope using scope provider. The record will not be valid if the scope will not be explicitly set."); } diff --git a/src/main/java/org/gcube/accounting/persistence/AccountingPersistence.java b/src/main/java/org/gcube/accounting/persistence/AccountingPersistence.java index 71190a1..26f0bcd 100644 --- a/src/main/java/org/gcube/accounting/persistence/AccountingPersistence.java +++ b/src/main/java/org/gcube/accounting/persistence/AccountingPersistence.java @@ -5,7 +5,7 @@ package org.gcube.accounting.persistence; import java.util.concurrent.TimeUnit; -import org.gcube.accounting.datamodel.BasicUsageRecord; +import org.gcube.common.scope.api.ScopeProvider; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.persistence.PersistenceBackendFactory; import org.gcube.documentstore.records.Record; @@ -38,7 +38,8 @@ public class AccountingPersistence { * @throws InvalidValueException */ public void account(final Record record) throws InvalidValueException { - String scope = BasicUsageRecord.getScopeFromToken(); + //String scope = BasicUsageRecord.getScopeFromToken(); + String scope = ScopeProvider.instance.get(); try { PersistenceBackendFactory.getPersistenceBackend(scope).account(record); } catch (org.gcube.documentstore.exception.InvalidValueException e) { @@ -51,12 +52,14 @@ public class AccountingPersistence { } public void flush(long timeout, TimeUnit timeUnit) throws Exception { - String scope = BasicUsageRecord.getScopeFromToken(); + //String scope = BasicUsageRecord.getScopeFromToken(); + String scope = ScopeProvider.instance.get(); PersistenceBackendFactory.flush(scope, timeout, timeUnit); } public void close() throws Exception{ - String scope = BasicUsageRecord.getScopeFromToken(); + //String scope = BasicUsageRecord.getScopeFromToken(); + String scope = ScopeProvider.instance.get(); PersistenceBackendFactory.getPersistenceBackend(scope).close(); } diff --git a/src/main/java/org/gcube/accounting/persistence/AccountingPersistenceConfiguration.java b/src/main/java/org/gcube/accounting/persistence/AccountingPersistenceConfiguration.java index 9c1f023..87f21c2 100644 --- a/src/main/java/org/gcube/accounting/persistence/AccountingPersistenceConfiguration.java +++ b/src/main/java/org/gcube/accounting/persistence/AccountingPersistenceConfiguration.java @@ -7,12 +7,12 @@ import java.security.Key; import java.util.List; import java.util.Map; -import org.gcube.accounting.datamodel.BasicUsageRecord; import org.gcube.common.encryption.StringEncrypter; import org.gcube.common.resources.gcore.ServiceEndpoint; import org.gcube.common.resources.gcore.ServiceEndpoint.AccessPoint; import org.gcube.common.resources.gcore.ServiceEndpoint.Property; import org.gcube.common.resources.gcore.utils.Group; +import org.gcube.common.scope.api.ScopeProvider; import org.gcube.documentstore.persistence.PersistenceBackend; import org.gcube.documentstore.persistence.PersistenceBackendConfiguration; import org.gcube.resources.discovery.client.api.DiscoveryClient; @@ -58,8 +58,10 @@ public class AccountingPersistenceConfiguration extends PersistenceBackendConfig DiscoveryClient client = ICFactory.clientFor(ServiceEndpoint.class); List serviceEndpoints = client.submit(query); if(serviceEndpoints.size()>1){ + //String scope = BasicUsageRecord.getScopeFromToken(); + String scope = ScopeProvider.instance.get(); query.addCondition(String.format("$resource/Profile/AccessPoint/Properties/Property/Name/text() eq '%s'", TARGET_SCOPE)); - query.addCondition(String.format("$resource/Profile/AccessPoint/Properties/Property/Value/text() eq '%s'", BasicUsageRecord.getScopeFromToken())); + query.addCondition(String.format("$resource/Profile/AccessPoint/Properties/Property/Value/text() eq '%s'", scope)); serviceEndpoints = client.submit(query); } diff --git a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java index cb9e4dd..9940f9e 100644 --- a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java @@ -7,12 +7,11 @@ import java.util.Set; import org.gcube.accounting.datamodel.usagerecords.ServiceUsageRecord; import org.gcube.accounting.datamodel.usagerecords.ServiceUsageRecordTest; +import org.gcube.accounting.testutility.ScopedTest; import org.gcube.accounting.testutility.TestUsageRecord; -import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.exception.NotAggregatableRecordsExceptions; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,15 +20,10 @@ import org.slf4j.LoggerFactory; * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ -public class AggregatedServiceUsageRecordTest { +public class AggregatedServiceUsageRecordTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(AggregatedServiceUsageRecordTest.class); - @Before - public void before() throws Exception{ - SecurityTokenProvider.instance.reset(); - } - @Test public void testRequiredFields() throws InvalidValueException { ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord(); diff --git a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java index f7b1867..23c7c50 100644 --- a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java @@ -4,12 +4,11 @@ package org.gcube.accounting.datamodel.aggregation; import org.gcube.accounting.datamodel.usagerecords.StorageUsageRecord; +import org.gcube.accounting.testutility.ScopedTest; import org.gcube.accounting.testutility.TestUsageRecord; -import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.exception.NotAggregatableRecordsExceptions; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,15 +17,10 @@ import org.slf4j.LoggerFactory; * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ -public class AggregatedStorageUsageRecordTest { +public class AggregatedStorageUsageRecordTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(AggregatedStorageUsageRecordTest.class); - @Before - public void before() throws Exception{ - SecurityTokenProvider.instance.reset(); - } - @Test public void secondAsNotAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions { StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecord(); diff --git a/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordTest.java index df4ac6d..e5a7615 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordTest.java @@ -8,12 +8,11 @@ import java.util.Set; import org.gcube.accounting.datamodel.UsageRecord; import org.gcube.accounting.datamodel.basetypes.AbstractJobUsageRecord; +import org.gcube.accounting.testutility.ScopedTest; import org.gcube.accounting.testutility.TestUsageRecord; -import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.Record; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,15 +21,10 @@ import org.slf4j.LoggerFactory; * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ -public class JobUsageRecordTest { +public class JobUsageRecordTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(JobUsageRecordTest.class); - @Before - public void before() throws Exception{ - SecurityTokenProvider.instance.reset(); - } - public static Set getExpectedRequiredFields(){ Set expectedRequiredFields = new HashSet(); expectedRequiredFields.add(Record.ID); diff --git a/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java index 9027337..f5bcb7b 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java @@ -8,12 +8,11 @@ import java.util.Set; import org.gcube.accounting.datamodel.UsageRecord; import org.gcube.accounting.datamodel.basetypes.AbstractServiceUsageRecord; +import org.gcube.accounting.testutility.ScopedTest; import org.gcube.accounting.testutility.TestUsageRecord; -import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.Record; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,15 +21,10 @@ import org.slf4j.LoggerFactory; * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ -public class ServiceUsageRecordTest { +public class ServiceUsageRecordTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(ServiceUsageRecordTest.class); - @Before - public void before() throws Exception{ - SecurityTokenProvider.instance.reset(); - } - public static Set getExpectedRequiredFields(){ Set expectedRequiredFields = new HashSet(); expectedRequiredFields.add(Record.ID); diff --git a/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordTest.java index c00029b..48327de 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordTest.java @@ -8,12 +8,11 @@ import java.util.Set; import org.gcube.accounting.datamodel.UsageRecord; import org.gcube.accounting.datamodel.basetypes.AbstractStorageUsageRecord; +import org.gcube.accounting.testutility.ScopedTest; import org.gcube.accounting.testutility.TestUsageRecord; -import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.Record; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,15 +21,10 @@ import org.slf4j.LoggerFactory; * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ -public class StorageUsageRecordTest { +public class StorageUsageRecordTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(StorageUsageRecordTest.class); - @Before - public void before() throws Exception{ - SecurityTokenProvider.instance.reset(); - } - public static Set getExpectedRequiredFields(){ Set expectedRequiredFields = new HashSet(); expectedRequiredFields.add(Record.ID); diff --git a/src/test/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecordTest.java index 5637aec..f6e8063 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecordTest.java @@ -8,12 +8,11 @@ import java.util.Set; import org.gcube.accounting.datamodel.UsageRecord; import org.gcube.accounting.datamodel.basetypes.AbstractTaskUsageRecord; +import org.gcube.accounting.testutility.ScopedTest; import org.gcube.accounting.testutility.TestUsageRecord; -import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.Record; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,14 +21,9 @@ import org.slf4j.LoggerFactory; * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ -public class TaskUsageRecordTest { +public class TaskUsageRecordTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(TaskUsageRecordTest.class); - - @Before - public void before() throws Exception{ - SecurityTokenProvider.instance.reset(); - } public static Set getExpectedRequiredFields(){ Set expectedRequiredFields = new HashSet(); diff --git a/src/test/java/org/gcube/accounting/testutility/ScopedTest.java b/src/test/java/org/gcube/accounting/testutility/ScopedTest.java new file mode 100644 index 0000000..ec339d9 --- /dev/null +++ b/src/test/java/org/gcube/accounting/testutility/ScopedTest.java @@ -0,0 +1,22 @@ +/** + * + */ +package org.gcube.accounting.testutility; + +//import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.scope.api.ScopeProvider; +import org.junit.Before; + +/** + * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ + * + */ +public class ScopedTest { + + @Before + public void before() throws Exception{ + //SecurityTokenProvider.instance.reset(); + ScopeProvider.instance.reset(); + } + +}