diff --git a/pom.xml b/pom.xml
index 4df8b52..152dbcf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,10 +7,10 @@
maven-parent
1.0.0
-
+
org.gcube.accounting
accounting-lib
- 2.0.0-SNAPSHOT
+ 2.1.0-SNAPSHOT
Accounting Library
Accounting Library
jar
@@ -35,13 +35,13 @@
org.gcube.resources.discovery
ic-client
- [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)
+ [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)
provided
org.gcube.core
common-scope
- [1.2.0-SNAPSHOT,2.0.0-SNAPSHOT)
+ [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)
provided
@@ -53,7 +53,7 @@
org.gcube.core
common-encryption
- [1.0.2-SNAPSHOT, 2.0.0-SNAPSHOT)
+ [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)
provided
@@ -72,7 +72,7 @@
org.gcube.resources
registry-publisher
- [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)
+ [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)
test
diff --git a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java
index 0307340..b3fb36b 100644
--- a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java
+++ b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java
@@ -8,7 +8,9 @@ import java.util.Map;
import org.gcube.accounting.datamodel.backwardcompatibility.MoveToRecordType;
import org.gcube.accounting.datamodel.validations.annotations.ValidOperationResult;
-import org.gcube.common.scope.api.ScopeProvider;
+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.documentstore.exception.InvalidValueException;
import org.gcube.documentstore.records.implementation.AbstractRecord;
import org.gcube.documentstore.records.implementation.RequiredField;
@@ -41,6 +43,18 @@ 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;
+ try {
+ authorizationEntry = Constants.authorizationService().get(token);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ String scope = authorizationEntry.getContext();
+ return scope;
+ }
+
/**
* Initialize variable
*/
@@ -48,7 +62,7 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe
super.init();
// Backward compatibility
try {
- this.setScope(ScopeProvider.instance.get());
+ this.setScope(getScopeFromToken());
} 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 0809e75..71190a1 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.common.scope.api.ScopeProvider;
+import org.gcube.accounting.datamodel.BasicUsageRecord;
import org.gcube.documentstore.exception.InvalidValueException;
import org.gcube.documentstore.persistence.PersistenceBackendFactory;
import org.gcube.documentstore.records.Record;
@@ -38,7 +38,7 @@ public class AccountingPersistence {
* @throws InvalidValueException
*/
public void account(final Record record) throws InvalidValueException {
- String scope = ScopeProvider.instance.get();
+ String scope = BasicUsageRecord.getScopeFromToken();
try {
PersistenceBackendFactory.getPersistenceBackend(scope).account(record);
} catch (org.gcube.documentstore.exception.InvalidValueException e) {
@@ -51,12 +51,12 @@ public class AccountingPersistence {
}
public void flush(long timeout, TimeUnit timeUnit) throws Exception {
- String scope = ScopeProvider.instance.get();
+ String scope = BasicUsageRecord.getScopeFromToken();
PersistenceBackendFactory.flush(scope, timeout, timeUnit);
}
public void close() throws Exception{
- String scope = ScopeProvider.instance.get();
+ String scope = BasicUsageRecord.getScopeFromToken();
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 6938040..9c1f023 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;
@@ -59,7 +59,7 @@ public class AccountingPersistenceConfiguration extends PersistenceBackendConfig
List serviceEndpoints = client.submit(query);
if(serviceEndpoints.size()>1){
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'", ScopeProvider.instance.get()));
+ query.addCondition(String.format("$resource/Profile/AccessPoint/Properties/Property/Value/text() eq '%s'", BasicUsageRecord.getScopeFromToken()));
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 888ceb3..5df2048 100644
--- a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java
+++ b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java
@@ -8,10 +8,11 @@ import java.util.Set;
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
import org.gcube.accounting.datamodel.usagerecords.ServiceUsageRecord;
import org.gcube.accounting.datamodel.usagerecords.ServiceUsageRecordTest;
-import org.gcube.common.scope.api.ScopeProvider;
+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;
@@ -24,6 +25,11 @@ public class AggregatedServiceUsageRecordTest {
private static Logger logger = LoggerFactory.getLogger(AggregatedServiceUsageRecordTest.class);
+ @Before
+ public void before() throws Exception{
+ SecurityTokenProvider.instance.set("");
+ }
+
@Test
public void testRequiredFields() throws InvalidValueException {
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
@@ -48,7 +54,6 @@ public class AggregatedServiceUsageRecordTest {
@Test
public void secondAsNotAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions {
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
serviceUsageRecord.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE);
serviceUsageRecord.validate();
@@ -88,7 +93,6 @@ public class AggregatedServiceUsageRecordTest {
@Test
public void secondAsAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions {
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
serviceUsageRecord.validate();
logger.debug("ServiceUsageRecord : {}", serviceUsageRecord);
@@ -133,7 +137,6 @@ public class AggregatedServiceUsageRecordTest {
@Test
public void aggregationStressTest() throws InvalidValueException, NotAggregatableRecordsExceptions {
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
serviceUsageRecord.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE);
serviceUsageRecord.validate();
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 84ec634..584407f 100644
--- a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java
+++ b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java
@@ -6,10 +6,11 @@ package org.gcube.accounting.datamodel.aggregation;
import org.gcube.accounting.datamodel.aggregation.AggregatedStorageUsageRecord;
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
import org.gcube.accounting.datamodel.usagerecords.StorageUsageRecord;
-import org.gcube.common.scope.api.ScopeProvider;
+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;
@@ -22,9 +23,13 @@ public class AggregatedStorageUsageRecordTest {
private static Logger logger = LoggerFactory.getLogger(AggregatedStorageUsageRecordTest.class);
+ @Before
+ public void before() throws Exception{
+ SecurityTokenProvider.instance.set("");
+ }
+
@Test
public void secondAsNotAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions {
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope();
storageUsageRecord.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE);
storageUsageRecord.validate();
@@ -53,7 +58,6 @@ public class AggregatedStorageUsageRecordTest {
@Test
public void secondAsAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions {
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope();
storageUsageRecord.validate();
logger.debug("StorageUsageRecord : {}", storageUsageRecord);
@@ -84,7 +88,6 @@ public class AggregatedStorageUsageRecordTest {
@Test
public void aggregationStressTest() throws InvalidValueException, NotAggregatableRecordsExceptions {
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope();
storageUsageRecord.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE);
storageUsageRecord.validate();
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 583e9e8..96b43e6 100644
--- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordTest.java
+++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordTest.java
@@ -9,7 +9,7 @@ import java.util.Set;
import org.gcube.accounting.datamodel.UsageRecord;
import org.gcube.accounting.datamodel.basetypes.AbstractJobUsageRecord;
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
-import org.gcube.common.scope.api.ScopeProvider;
+import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.documentstore.exception.InvalidValueException;
import org.gcube.documentstore.records.Record;
import org.junit.After;
@@ -28,15 +28,13 @@ public class JobUsageRecordTest {
private static Logger logger = LoggerFactory.getLogger(JobUsageRecordTest.class);
@Before
- public void before(){
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
- logger.trace("Setting {} scope", TestUsageRecord.TEST_SCOPE);
+ public void before() throws Exception{
+ SecurityTokenProvider.instance.set("");
}
@After
public void after(){
- ScopeProvider.instance.reset();
- logger.trace("Scope reset");
+ SecurityTokenProvider.instance.reset();
}
public static Set getExpectedRequiredFields(){
@@ -56,7 +54,6 @@ public class JobUsageRecordTest {
@Test(expected=InvalidValueException.class)
public void scopeNotSetValidationError() throws InvalidValueException {
- ScopeProvider.instance.reset();
JobUsageRecord usageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
usageRecord.validate();
logger.debug("{}", usageRecord);
@@ -81,7 +78,6 @@ public class JobUsageRecordTest {
@Test
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
- ScopeProvider.instance.reset();
JobUsageRecord usageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
Assert.assertTrue(usageRecord.getScope()==null);
usageRecord.setScope(TestUsageRecord.TEST_SCOPE);
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 89c6a59..8102f52 100644
--- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java
+++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java
@@ -9,7 +9,7 @@ import java.util.Set;
import org.gcube.accounting.datamodel.UsageRecord;
import org.gcube.accounting.datamodel.basetypes.AbstractServiceUsageRecord;
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
-import org.gcube.common.scope.api.ScopeProvider;
+import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.documentstore.exception.InvalidValueException;
import org.gcube.documentstore.records.Record;
import org.junit.After;
@@ -28,15 +28,13 @@ public class ServiceUsageRecordTest {
private static Logger logger = LoggerFactory.getLogger(ServiceUsageRecordTest.class);
@Before
- public void before(){
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
- logger.trace("Setting {} scope", TestUsageRecord.TEST_SCOPE);
+ public void before() throws Exception{
+ SecurityTokenProvider.instance.set("");
}
@After
public void after(){
- ScopeProvider.instance.reset();
- logger.trace("Scope reset");
+ SecurityTokenProvider.instance.reset();
}
public static Set getExpectedRequiredFields(){
@@ -58,7 +56,7 @@ public class ServiceUsageRecordTest {
@Test(expected=InvalidValueException.class)
public void scopeNotSetValidationError() throws InvalidValueException {
- ScopeProvider.instance.reset();
+ SecurityTokenProvider.instance.reset();
ServiceUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
usageRecord.validate();
logger.debug("{}", usageRecord);
@@ -83,7 +81,7 @@ public class ServiceUsageRecordTest {
@Test
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
- ScopeProvider.instance.reset();
+ SecurityTokenProvider.instance.reset();
ServiceUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
Assert.assertTrue(usageRecord.getScope()==null);
usageRecord.setScope(TestUsageRecord.TEST_SCOPE);
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 4106351..c769b21 100644
--- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordTest.java
+++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordTest.java
@@ -9,7 +9,7 @@ import java.util.Set;
import org.gcube.accounting.datamodel.UsageRecord;
import org.gcube.accounting.datamodel.basetypes.AbstractStorageUsageRecord;
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
-import org.gcube.common.scope.api.ScopeProvider;
+import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.documentstore.exception.InvalidValueException;
import org.gcube.documentstore.records.Record;
import org.junit.After;
@@ -28,15 +28,13 @@ public class StorageUsageRecordTest {
private static Logger logger = LoggerFactory.getLogger(StorageUsageRecordTest.class);
@Before
- public void before(){
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
- logger.trace("Setting {} scope", TestUsageRecord.TEST_SCOPE);
+ public void before() throws Exception{
+ SecurityTokenProvider.instance.set("");
}
@After
public void after(){
- ScopeProvider.instance.reset();
- logger.trace("Scope reset");
+ SecurityTokenProvider.instance.reset();
}
public static Set getExpectedRequiredFields(){
@@ -60,7 +58,7 @@ public class StorageUsageRecordTest {
@Test(expected=InvalidValueException.class)
public void scopeNotSetValidationError() throws InvalidValueException {
- ScopeProvider.instance.reset();
+ SecurityTokenProvider.instance.reset();
StorageUsageRecord usageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope();
usageRecord.validate();
logger.debug("{}", usageRecord);
@@ -85,7 +83,7 @@ public class StorageUsageRecordTest {
@Test
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
- ScopeProvider.instance.reset();
+ SecurityTokenProvider.instance.reset();
StorageUsageRecord usageRecord = TestUsageRecord.createTestStorageUsageRecordExplicitScope();
Assert.assertTrue(usageRecord.getScope()==null);
usageRecord.setScope(TestUsageRecord.TEST_SCOPE);
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 68ca84f..4b065eb 100644
--- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecordTest.java
+++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecordTest.java
@@ -9,7 +9,7 @@ import java.util.Set;
import org.gcube.accounting.datamodel.UsageRecord;
import org.gcube.accounting.datamodel.basetypes.AbstractTaskUsageRecord;
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
-import org.gcube.common.scope.api.ScopeProvider;
+import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.documentstore.exception.InvalidValueException;
import org.gcube.documentstore.records.Record;
import org.junit.After;
@@ -28,15 +28,13 @@ public class TaskUsageRecordTest {
private static Logger logger = LoggerFactory.getLogger(TaskUsageRecordTest.class);
@Before
- public void before(){
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
- logger.trace("Setting {} scope", TestUsageRecord.TEST_SCOPE);
+ public void before() throws Exception{
+ SecurityTokenProvider.instance.set("");
}
@After
public void after(){
- ScopeProvider.instance.reset();
- logger.trace("Scope reset");
+ SecurityTokenProvider.instance.reset();
}
public static Set getExpectedRequiredFields(){
@@ -56,7 +54,7 @@ public class TaskUsageRecordTest {
@Test(expected=InvalidValueException.class)
public void scopeNotSetValidationError() throws InvalidValueException {
- ScopeProvider.instance.reset();
+ SecurityTokenProvider.instance.reset();
TaskUsageRecord usageRecord = TestUsageRecord.createTestTaskUsageRecordAutomaticScope();
usageRecord.validate();
logger.debug("{}", usageRecord);
@@ -64,7 +62,6 @@ public class TaskUsageRecordTest {
@Test
public void testRequiredFields() throws InvalidValueException{
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
TaskUsageRecord usageRecord = TestUsageRecord.createTestTaskUsageRecordAutomaticScope();
Set expectedRequiredFields = getExpectedRequiredFields();
@@ -82,7 +79,7 @@ public class TaskUsageRecordTest {
@Test
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
- ScopeProvider.instance.reset();
+ SecurityTokenProvider.instance.reset();
TaskUsageRecord usageRecord = TestUsageRecord.createTestTaskUsageRecordExplicitScope();
Assert.assertTrue(usageRecord.getScope()==null);
usageRecord.setScope(TestUsageRecord.TEST_SCOPE);
diff --git a/src/test/java/org/gcube/accounting/persistence/AccountingPersistenceConfigurationTest.java b/src/test/java/org/gcube/accounting/persistence/AccountingPersistenceConfigurationTest.java
index c02566b..0b61e81 100644
--- a/src/test/java/org/gcube/accounting/persistence/AccountingPersistenceConfigurationTest.java
+++ b/src/test/java/org/gcube/accounting/persistence/AccountingPersistenceConfigurationTest.java
@@ -8,6 +8,7 @@ import java.net.URL;
import java.util.Arrays;
import java.util.List;
+import org.gcube.accounting.datamodel.BasicUsageRecord;
import org.gcube.common.resources.gcore.Resource;
import org.gcube.common.resources.gcore.Resources;
import org.gcube.common.resources.gcore.ServiceEndpoint;
@@ -17,7 +18,6 @@ import org.gcube.common.resources.gcore.ServiceEndpoint.Property;
import org.gcube.common.resources.gcore.ServiceEndpoint.Runtime;
import org.gcube.common.resources.gcore.common.Platform;
import org.gcube.common.resources.gcore.utils.Group;
-import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.documentstore.persistence.PersistenceBackend;
import org.gcube.informationsystem.publisher.RegistryPublisherFactory;
import org.gcube.informationsystem.publisher.ScopedPublisher;
@@ -94,7 +94,7 @@ public class AccountingPersistenceConfigurationTest {
private static void unPublishScopedResource(Resource resource, List scopes) throws RegistryNotFoundException, Exception {
ScopedPublisher scopedPublisher = RegistryPublisherFactory.scopedPublisher();
String id = resource.id();
- logger.debug("Trying to remove {} with ID {} from {}", resource.getClass().getSimpleName(), id, ScopeProvider.instance.get());
+ logger.debug("Trying to remove {} with ID {} from {}", resource.getClass().getSimpleName(), id, BasicUsageRecord.getScopeFromToken());
scopedPublisher.remove(resource, scopes);
logger.debug("{} with ID {} removed successfully", resource.getClass().getSimpleName(), id);
}
@@ -153,7 +153,6 @@ public class AccountingPersistenceConfigurationTest {
}
public void testPersistenceConfigurationFromIS() throws Exception{
- ScopeProvider.instance.set(ALL_SCOPES[0]);
boolean createResource = true;
ServiceEndpoint serviceEndpoint = null;
List scopes = Arrays.asList(ALL_SCOPES);
@@ -187,23 +186,20 @@ public class AccountingPersistenceConfigurationTest {
}
public void getUsernamePasswordForScopes() throws Exception{
- for(String scope : ALL_SCOPES){
- logger.debug("START ======================================================");
- ScopeProvider.instance.set(scope);
- try {
- AccountingPersistenceConfiguration persitenceConfiguration = new AccountingPersistenceConfiguration(AccountingPersistenceFakeDB.class);
- String uri = persitenceConfiguration.getProperty(AccountingPersistenceConfiguration.URL_PROPERTY_KEY);
- String username = persitenceConfiguration.getProperty(AccountingPersistenceConfiguration.USERNAME_PROPERTY_KEY);
- String password = persitenceConfiguration.getProperty(AccountingPersistenceConfiguration.PASSWORD_PROPERTY_KEY);
- logger.debug("{} - {} - {} - {}", scope, uri, username, password);
- }catch(IndexOutOfBoundsException e){
- logger.debug("No AccountingPersistenceConfiguration : \n {} {} \n\n", e.getClass().getName(), e.getMessage());
- } catch(Exception e){
- logger.error("Error getting AccountingPersistenceConfiguration", e);
- throw e;
- } finally {
- logger.debug(" END ======================================================");
- }
+ logger.debug("START ======================================================");
+ try {
+ AccountingPersistenceConfiguration persitenceConfiguration = new AccountingPersistenceConfiguration(AccountingPersistenceFakeDB.class);
+ String uri = persitenceConfiguration.getProperty(AccountingPersistenceConfiguration.URL_PROPERTY_KEY);
+ String username = persitenceConfiguration.getProperty(AccountingPersistenceConfiguration.USERNAME_PROPERTY_KEY);
+ String password = persitenceConfiguration.getProperty(AccountingPersistenceConfiguration.PASSWORD_PROPERTY_KEY);
+ logger.debug("{} - {} - {} - {}", BasicUsageRecord.getScopeFromToken(), uri, username, password);
+ }catch(IndexOutOfBoundsException e){
+ logger.debug("No AccountingPersistenceConfiguration : \n {} {} \n\n", e.getClass().getName(), e.getMessage());
+ } catch(Exception e){
+ logger.error("Error getting AccountingPersistenceConfiguration", e);
+ throw e;
+ } finally {
+ logger.debug(" END ======================================================");
}
}
diff --git a/src/test/java/org/gcube/accounting/persistence/AccountingPersistenceTest.java b/src/test/java/org/gcube/accounting/persistence/AccountingPersistenceTest.java
deleted file mode 100644
index 0559d8b..0000000
--- a/src/test/java/org/gcube/accounting/persistence/AccountingPersistenceTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- *
- */
-package org.gcube.accounting.persistence;
-
-import java.util.UUID;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.concurrent.TimeUnit;
-
-import org.gcube.accounting.datamodel.UsageRecord;
-import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
-import org.gcube.accounting.persistence.AccountingPersistence;
-import org.gcube.accounting.testutility.StressTestUtility;
-import org.gcube.accounting.testutility.TestOperation;
-import org.gcube.common.scope.api.ScopeProvider;
-import org.gcube.documentstore.exception.InvalidValueException;
-import org.gcube.documentstore.persistence.PersistenceBackendFactory;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
- *
- */
-public class AccountingPersistenceTest {
-
- private static final Logger logger = LoggerFactory.getLogger(AccountingPersistenceTest.class);
-
- public static final String[] SCOPES = new String[]{
- "/gcube",
- "/gcube/devsec", "/gcube/devsec/devVRE",
- "/gcube/devNext", "/gcube/devNext/NextNext"
- };
-
- public static final long timeout = 5000;
- public static final TimeUnit timeUnit = TimeUnit.MILLISECONDS;
-
- @Test
- public void stressTest() throws Exception {
- final AccountingPersistence persistence = AccountingPersistence.getInstance();
- PersistenceBackendFactory.setFallbackLocation(null);
- StressTestUtility.stressTest(new TestOperation() {
- @Override
- public void operate(int i) {
- int randomNumber = ThreadLocalRandom.current().nextInt(0, 5);
- ScopeProvider.instance.set(SCOPES[randomNumber]);
- UsageRecord usageRecord = null;
- switch (i%2) {
- case 0:
- usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
- break;
- case 1:
- usageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope();
- break;
- default:
- usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
- break;
- }
- try {
- usageRecord.setConsumerId(UUID.randomUUID().toString());
- persistence.account(usageRecord);
- } catch (InvalidValueException e) {
- throw new RuntimeException(e);
- }
- }
- });
- logger.debug(" START -----------------------------------------------");
- logger.debug("Flushing the buffered records");
- persistence.flush(timeout, timeUnit);
- logger.debug(" END -----------------------------------------------");
-
- }
-}
diff --git a/src/test/java/org/gcube/documentstore/persistence/PersistenceBackendMonitorTest.java b/src/test/java/org/gcube/documentstore/persistence/PersistenceBackendMonitorTest.java
index fd84d63..7678d64 100644
--- a/src/test/java/org/gcube/documentstore/persistence/PersistenceBackendMonitorTest.java
+++ b/src/test/java/org/gcube/documentstore/persistence/PersistenceBackendMonitorTest.java
@@ -5,12 +5,15 @@ package org.gcube.documentstore.persistence;
import java.util.concurrent.TimeUnit;
+import org.gcube.accounting.datamodel.BasicUsageRecord;
import org.gcube.accounting.datamodel.UsageRecord;
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
import org.gcube.accounting.testutility.StressTestUtility;
import org.gcube.accounting.testutility.TestOperation;
-import org.gcube.common.scope.api.ScopeProvider;
+import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.documentstore.exception.InvalidValueException;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -26,12 +29,21 @@ public class PersistenceBackendMonitorTest {
public static final long timeout = 5000;
public static final TimeUnit timeUnit = TimeUnit.MILLISECONDS;
+ @Before
+ public void before() throws Exception{
+ SecurityTokenProvider.instance.set("");
+ }
+
+ @After
+ public void after(){
+ SecurityTokenProvider.instance.reset();
+ }
+
+
@Test
public void parsingTest() throws Exception {
- ScopeProvider.instance.set("/gcube/devsec");
-
PersistenceBackendFactory.setFallbackLocation(null);
- final PersistenceBackend persistence = PersistenceBackendFactory.getPersistenceBackend(ScopeProvider.instance.get());
+ final PersistenceBackend persistence = PersistenceBackendFactory.getPersistenceBackend(BasicUsageRecord.getScopeFromToken());
StressTestUtility.stressTest(new TestOperation() {
@@ -62,7 +74,7 @@ public class PersistenceBackendMonitorTest {
persistence.flush(timeout, timeUnit);
logger.debug(" END -----------------------------------------------");
- PersistenceBackend persistenceBackend = PersistenceBackendFactory.getPersistenceBackend(ScopeProvider.instance.get());
+ PersistenceBackend persistenceBackend = PersistenceBackendFactory.getPersistenceBackend(BasicUsageRecord.getScopeFromToken());
persistenceBackend.setFallback((FallbackPersistenceBackend) persistenceBackend);
PersistenceBackendMonitor temporalDataPersistenceBackendMonitor = new PersistenceBackendMonitor(persistenceBackend);
@@ -72,9 +84,8 @@ public class PersistenceBackendMonitorTest {
@Test
public void singleParsingTest() throws Exception {
- ScopeProvider.instance.set("/gcube/devsec");
PersistenceBackendFactory.setFallbackLocation(null);
- PersistenceBackend persistenceBackend = PersistenceBackendFactory.getPersistenceBackend(ScopeProvider.instance.get());
+ PersistenceBackend persistenceBackend = PersistenceBackendFactory.getPersistenceBackend(BasicUsageRecord.getScopeFromToken());
persistenceBackend.setFallback((FallbackPersistenceBackend) persistenceBackend);
PersistenceBackendMonitor temporalDataPersistenceBackendMonitor = new PersistenceBackendMonitor(persistenceBackend);
diff --git a/src/test/java/org/gcube/documentstore/persistence/PersistenceBackendTest.java b/src/test/java/org/gcube/documentstore/persistence/PersistenceBackendTest.java
index d4edb50..643fda9 100644
--- a/src/test/java/org/gcube/documentstore/persistence/PersistenceBackendTest.java
+++ b/src/test/java/org/gcube/documentstore/persistence/PersistenceBackendTest.java
@@ -6,16 +6,16 @@ package org.gcube.documentstore.persistence;
import java.util.Calendar;
import java.util.concurrent.TimeUnit;
+import org.gcube.accounting.datamodel.BasicUsageRecord;
import org.gcube.accounting.datamodel.UsageRecord;
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
import org.gcube.accounting.testutility.StressTestUtility;
import org.gcube.accounting.testutility.TestOperation;
-import org.gcube.common.scope.api.ScopeProvider;
+import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.documentstore.exception.InvalidValueException;
-import org.gcube.documentstore.persistence.FallbackPersistenceBackend;
-import org.gcube.documentstore.persistence.PersistenceBackend;
-import org.gcube.documentstore.persistence.PersistenceBackendFactory;
+import org.junit.AfterClass;
import org.junit.Assert;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,10 +35,20 @@ public class PersistenceBackendTest {
public static final long timeout = 5000;
public static final TimeUnit timeUnit = TimeUnit.MILLISECONDS;
+
+ @BeforeClass
+ public static void before() throws Exception{
+ SecurityTokenProvider.instance.set("");
+ }
+
+ @AfterClass
+ public static void after(){
+ SecurityTokenProvider.instance.reset();
+ }
+
public static PersistenceBackend getPersistence(){
- ScopeProvider.instance.set(GCUBE_DEVNEXT_SCOPE);
PersistenceBackendFactory.setFallbackLocation(null);
- return PersistenceBackendFactory.getPersistenceBackend(ScopeProvider.instance.get());
+ return PersistenceBackendFactory.getPersistenceBackend(BasicUsageRecord.getScopeFromToken());
}
@Test
@@ -105,12 +115,11 @@ public class PersistenceBackendTest {
@Test
public void testScopeRecheck() throws Exception {
- ScopeProvider.instance.set("/fakeScope");
PersistenceBackendFactory.setFallbackLocation(null);
logger.debug("Going to check First Time");
- PersistenceBackend first = PersistenceBackendFactory.getPersistenceBackend(ScopeProvider.instance.get());
+ PersistenceBackend first = PersistenceBackendFactory.getPersistenceBackend(BasicUsageRecord.getScopeFromToken());
logger.debug("First {} : {}", PersistenceBackend.class.getSimpleName(), first);
- Long firstCheck = PersistenceBackendFactory.getFallbackLastCheck(ScopeProvider.instance.get());
+ Long firstCheck = PersistenceBackendFactory.getFallbackLastCheck(BasicUsageRecord.getScopeFromToken());
logger.debug("First Check Time {}", firstCheck);
long startTime = Calendar.getInstance().getTimeInMillis();
@@ -121,9 +130,9 @@ public class PersistenceBackendTest {
}
logger.debug("Going to check Second Time");
- PersistenceBackend second = PersistenceBackendFactory.getPersistenceBackend(ScopeProvider.instance.get());
+ PersistenceBackend second = PersistenceBackendFactory.getPersistenceBackend(BasicUsageRecord.getScopeFromToken());
logger.debug("Second {} : {}", PersistenceBackend.class.getSimpleName(), second);
- Long secondCheck = PersistenceBackendFactory.getFallbackLastCheck(ScopeProvider.instance.get());
+ Long secondCheck = PersistenceBackendFactory.getFallbackLastCheck(BasicUsageRecord.getScopeFromToken());
logger.debug("Second Check Time {}", secondCheck);
Assert.assertNotEquals(firstCheck, secondCheck);
diff --git a/src/test/java/org/gcube/documentstore/records/aggregation/AggregationSchedulerTest.java b/src/test/java/org/gcube/documentstore/records/aggregation/AggregationSchedulerTest.java
index 6239de1..4ebfc64 100644
--- a/src/test/java/org/gcube/documentstore/records/aggregation/AggregationSchedulerTest.java
+++ b/src/test/java/org/gcube/documentstore/records/aggregation/AggregationSchedulerTest.java
@@ -12,11 +12,13 @@ import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
import org.gcube.accounting.datamodel.usagerecords.ServiceUsageRecord;
import org.gcube.accounting.testutility.StressTestUtility;
import org.gcube.accounting.testutility.TestOperation;
-import org.gcube.common.scope.api.ScopeProvider;
+import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.documentstore.persistence.PersistenceExecutor;
import org.gcube.documentstore.records.AggregatedRecord;
import org.gcube.documentstore.records.Record;
+import org.junit.After;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,10 +31,22 @@ public class AggregationSchedulerTest {
private static final Logger logger = LoggerFactory.getLogger(AggregationSchedulerTest.class);
+ @Before
+ public void before() throws Exception{
+ SecurityTokenProvider.instance.set("");
+ }
+
+ @After
+ public void after(){
+ SecurityTokenProvider.instance.reset();
+ }
+
public static AggregationScheduler getAggregationScheduler(){
return AggregationScheduler.newInstance();
}
+
+
public static PersistenceExecutor persistenceExecutor = new PersistenceExecutor(){
@Override
public void persist(Record... records) throws Exception {
@@ -43,7 +57,6 @@ public class AggregationSchedulerTest {
};
protected void madeAssertion(Map> bufferedRecords, List types, int size, int count) {
-
for(String type : types){
Assert.assertTrue(bufferedRecords.containsKey(type));
List records = bufferedRecords.get(type);
@@ -60,7 +73,6 @@ public class AggregationSchedulerTest {
@Test
public void stressTestAggregableURSingleType() throws Exception {
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
final AggregationScheduler aggregationScheduler = getAggregationScheduler();
StressTestUtility.stressTest(new TestOperation() {
@Override
@@ -80,7 +92,6 @@ public class AggregationSchedulerTest {
@Test
public void stressTestDifferentAggregableURSingleType() throws Exception {
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
final AggregationScheduler aggregationScheduler = getAggregationScheduler();
StressTestUtility.stressTest(new TestOperation() {
@Override
@@ -103,7 +114,6 @@ public class AggregationSchedulerTest {
@Test
public void stressTestDifferentAggregableURTwoType() throws Exception {
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
final AggregationScheduler aggregationScheduler = getAggregationScheduler();
StressTestUtility.stressTest(new TestOperation() {
@Override
@@ -131,7 +141,6 @@ public class AggregationSchedulerTest {
@Test
public void stressTestDifferentAggregableURMultipleType() throws Exception {
- ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
final AggregationScheduler aggregationScheduler = getAggregationScheduler();
StressTestUtility.stressTest(new TestOperation() {
@Override