diff --git a/pom.xml b/pom.xml index 269db23..d2722ce 100644 --- a/pom.xml +++ b/pom.xml @@ -46,6 +46,11 @@ org.slf4j slf4j-api + + org.gcube.common + authorization-utils + [2.0.0, 3.0.0-SNAPSHOT) + junit diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/api/rest/ServiceInstance.java b/src/main/java/org/gcube/informationsystem/resourceregistry/api/rest/ServiceInstance.java index 725bbc9..e59d06c 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/api/rest/ServiceInstance.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/api/rest/ServiceInstance.java @@ -1,6 +1,6 @@ package org.gcube.informationsystem.resourceregistry.api.rest; -import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.common.authorization.utils.manager.SecretManagerProvider; /** * @author Luca Frosini (ISTI - CNR) @@ -12,7 +12,7 @@ public abstract class ServiceInstance { public static final String BASE_URL = "https://url.d4science.org"; public static String getServiceURL() { - String context = ScopeProvider.instance.get(); + String context = SecretManagerProvider.instance.get().getContext(); return getServiceURL(context); } diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/api/rest/httputils/HTTPUtility.java b/src/main/java/org/gcube/informationsystem/resourceregistry/api/rest/httputils/HTTPUtility.java index 6a42918..094aa04 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/api/rest/httputils/HTTPUtility.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/api/rest/httputils/HTTPUtility.java @@ -24,6 +24,9 @@ import org.gcube.informationsystem.serialization.ElementMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * @author Luca Frosini (ISTI - CNR) + */ public class HTTPUtility { private static final Logger logger = LoggerFactory.getLogger(HTTPUtility.class); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/api/utils/Utility.java b/src/main/java/org/gcube/informationsystem/resourceregistry/api/utils/Utility.java index d3b6a5f..73e77e5 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/api/utils/Utility.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/api/utils/Utility.java @@ -11,6 +11,9 @@ import org.gcube.informationsystem.base.reference.IdentifiableElement; import org.gcube.informationsystem.serialization.ElementMapper; import org.gcube.informationsystem.types.TypeMapper; +/** + * @author Luca Frosini (ISTI - CNR) + */ public abstract class Utility { public static String getClassFromJsonNode(JsonNode jsonNode){ diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/api/ContextTest.java b/src/test/java/org/gcube/informationsystem/resourceregistry/api/ContextTest.java new file mode 100644 index 0000000..acc83c3 --- /dev/null +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/api/ContextTest.java @@ -0,0 +1,89 @@ +/** + * + */ +package org.gcube.informationsystem.resourceregistry.api; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import org.gcube.common.authorization.utils.manager.SecretManager; +import org.gcube.common.authorization.utils.manager.SecretManagerProvider; +import org.gcube.common.authorization.utils.secret.Secret; +import org.gcube.common.authorization.utils.secret.SecretUtility; +import org.junit.AfterClass; +import org.junit.BeforeClass; + +/** + * @author Luca Frosini (ISTI - CNR) + */ +public class ContextTest { + + protected static Properties properties; + protected static final String PROPERTIES_FILENAME = "token.properties"; + + public static final String ROOT; + public static final String VO; + public static final String VRE; + + static { + properties = new Properties(); + InputStream input = ContextTest.class.getClassLoader().getResourceAsStream(PROPERTIES_FILENAME); + + try { + // load the properties file + properties.load(input); + } catch(IOException e) { + throw new RuntimeException(e); + } + + // DEFAULT_TEST_SCOPE_NAME = "/pred4s/preprod/preVRE"; + // DEFAULT_TEST_SCOPE_NAME = "/gcube/devsec/devVRE"; + + ROOT = "/gcube"; + VO = ROOT + "/devsec"; + VRE = VO + "/devVRE"; + // VO = ROOT + "/devNext"; + // VRE = VO + "/NextNext"; + + } + + public static void set(Secret secret) throws Exception { + SecretManagerProvider.instance.reset(); + SecretManager secretManager = new SecretManager(); + SecretManagerProvider.instance.set(secretManager); + secretManager.addSecret(secret); + secretManager.set(); + } + + public static void setContext(String token) throws Exception { + Secret secret = getSecret(token); + set(secret); + } + + public static void setContextByName(String fullContextName) throws Exception { + Secret secret = getSecretByContextName(fullContextName); + set(secret); + } + + private static Secret getSecret(String token) throws Exception { + Secret secret = SecretUtility.getSecretByTokenString(token); + return secret; + } + + private static Secret getSecretByContextName(String fullContextName) throws Exception { + String token = ContextTest.properties.getProperty(fullContextName); + return getSecret(token); + } + + @BeforeClass + public static void beforeClass() throws Exception { + setContextByName(VRE); + } + + @AfterClass + public static void afterClass() throws Exception { + SecretManagerProvider.instance.reset(); + } + +} diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/api/rest/ServiceInstanceTest.java b/src/test/java/org/gcube/informationsystem/resourceregistry/api/rest/ServiceInstanceTest.java new file mode 100644 index 0000000..4a4069b --- /dev/null +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/api/rest/ServiceInstanceTest.java @@ -0,0 +1,19 @@ +package org.gcube.informationsystem.resourceregistry.api.rest; + +import org.gcube.informationsystem.resourceregistry.api.ContextTest; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author Luca Frosini (ISTI - CNR) + */ +public class ServiceInstanceTest extends ContextTest { + + @Test + public void test() { + String url = ServiceInstance.getServiceURL(); + String testURL = ServiceInstance.BASE_URL.replace("url.", "url.gcube."); + Assert.assertTrue(url.compareTo(testURL)==0); + } + +}