|
|
|
@ -10,7 +10,10 @@ import java.util.Properties;
|
|
|
|
|
import org.gcube.common.authorization.client.Constants; |
|
|
|
|
import org.gcube.common.authorization.client.exceptions.ObjectNotFound; |
|
|
|
|
import org.gcube.common.authorization.library.AuthorizationEntry; |
|
|
|
|
import org.gcube.common.authorization.library.provider.AuthorizationProvider; |
|
|
|
|
import org.gcube.common.authorization.library.provider.ClientInfo; |
|
|
|
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider; |
|
|
|
|
import org.gcube.common.authorization.library.utils.Caller; |
|
|
|
|
import org.gcube.common.scope.api.ScopeProvider; |
|
|
|
|
import org.junit.AfterClass; |
|
|
|
|
import org.junit.BeforeClass; |
|
|
|
@ -25,92 +28,94 @@ public class ContextTest {
|
|
|
|
|
|
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(ContextTest.class); |
|
|
|
|
|
|
|
|
|
protected static final String PROPERTIES_FILENAME = "token.properties"; |
|
|
|
|
|
|
|
|
|
private static final String GCUBE_DEVNEXT_VARNAME = "GCUBE_DEVNEXT"; |
|
|
|
|
public static final String GCUBE_DEVNEXT; |
|
|
|
|
|
|
|
|
|
private static final String GCUBE_DEVNEXT_NEXTNEXT_VARNAME = "GCUBE_DEVNEXT_NEXTNEXT"; |
|
|
|
|
public static final String GCUBE_DEVNEXT_NEXTNEXT; |
|
|
|
|
|
|
|
|
|
public static final String GCUBE_DEVSEC_VARNAME = "GCUBE_DEVSEC"; |
|
|
|
|
public static final String GCUBE_DEVSEC; |
|
|
|
|
|
|
|
|
|
public static final String GCUBE_DEVSEC_DEVVRE_VARNAME = "GCUBE_DEVSEC_DEVVRE"; |
|
|
|
|
public static final String GCUBE_DEVSEC_DEVVRE; |
|
|
|
|
|
|
|
|
|
public static final String GCUBE_VARNAME = "GCUBE"; |
|
|
|
|
public static final String GCUBE; |
|
|
|
|
|
|
|
|
|
protected static Properties properties; |
|
|
|
|
protected static final String PROPERTIES_FILENAME = "token.properties"; |
|
|
|
|
|
|
|
|
|
public static final String PARENT_DEFAULT_TEST_SCOPE; |
|
|
|
|
public static final String DEFAULT_TEST_SCOPE; |
|
|
|
|
public static final String ALTERNATIVE_TEST_SCOPE; |
|
|
|
|
|
|
|
|
|
public static final String DEFAULT_TEST_SCOPE_ANOTHER_USER; |
|
|
|
|
|
|
|
|
|
protected static final String REGISTRY_PROPERTIES_FILENAME = "registry.properties"; |
|
|
|
|
public static final String RESOURCE_REGISTRY_URL_PROPERTY = "RESOURCE_REGISTRY_URL"; |
|
|
|
|
public static final String RESOURCE_REGISTRY_URL; |
|
|
|
|
|
|
|
|
|
static { |
|
|
|
|
Properties properties = new Properties(); |
|
|
|
|
properties = new Properties(); |
|
|
|
|
InputStream input = ContextTest.class.getClassLoader().getResourceAsStream(PROPERTIES_FILENAME); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
// load the properties file
|
|
|
|
|
properties.load(input); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
} catch(IOException e) { |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GCUBE_DEVNEXT = properties.getProperty(GCUBE_DEVNEXT_VARNAME); |
|
|
|
|
GCUBE_DEVNEXT_NEXTNEXT = properties.getProperty(GCUBE_DEVNEXT_NEXTNEXT_VARNAME); |
|
|
|
|
|
|
|
|
|
GCUBE_DEVSEC = properties.getProperty(GCUBE_DEVSEC_VARNAME); |
|
|
|
|
GCUBE_DEVSEC_DEVVRE = properties.getProperty(GCUBE_DEVSEC_DEVVRE_VARNAME); |
|
|
|
|
// PARENT_DEFAULT_TEST_SCOPE = "/pred4s"
|
|
|
|
|
// DEFAULT_TEST_SCOPE_NAME = PARENT_DEFAULT_TEST_SCOPE + "/preprod";
|
|
|
|
|
// ALTERNATIVE_TEST_SCOPE = DEFAULT_TEST_SCOPE_NAME + "/preVRE";
|
|
|
|
|
|
|
|
|
|
GCUBE = properties.getProperty(GCUBE_VARNAME); |
|
|
|
|
|
|
|
|
|
DEFAULT_TEST_SCOPE = GCUBE_DEVNEXT_NEXTNEXT; |
|
|
|
|
ALTERNATIVE_TEST_SCOPE = GCUBE_DEVSEC_DEVVRE; |
|
|
|
|
PARENT_DEFAULT_TEST_SCOPE = "/gcube"; |
|
|
|
|
DEFAULT_TEST_SCOPE = PARENT_DEFAULT_TEST_SCOPE + "/devNext"; |
|
|
|
|
ALTERNATIVE_TEST_SCOPE = DEFAULT_TEST_SCOPE + "/NextNext"; |
|
|
|
|
|
|
|
|
|
DEFAULT_TEST_SCOPE_ANOTHER_USER = "lucio.lelii_" + DEFAULT_TEST_SCOPE; |
|
|
|
|
|
|
|
|
|
properties = new Properties(); |
|
|
|
|
try { |
|
|
|
|
setContextByName(DEFAULT_TEST_SCOPE); |
|
|
|
|
} catch(Exception e) { |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Properties registryProperties = new Properties(); |
|
|
|
|
input = ContextTest.class.getClassLoader().getResourceAsStream(REGISTRY_PROPERTIES_FILENAME); |
|
|
|
|
try { |
|
|
|
|
// load the properties file
|
|
|
|
|
properties.load(input); |
|
|
|
|
registryProperties.load(input); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
RESOURCE_REGISTRY_URL = properties.getProperty(RESOURCE_REGISTRY_URL_PROPERTY); |
|
|
|
|
RESOURCE_REGISTRY_URL = registryProperties.getProperty(RESOURCE_REGISTRY_URL_PROPERTY); |
|
|
|
|
|
|
|
|
|
if(RESOURCE_REGISTRY_URL!=null){ |
|
|
|
|
ResourceRegistrySchemaClientFactory.forceToURL(RESOURCE_REGISTRY_URL); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static String getCurrentScope(String token) throws ObjectNotFound, Exception{ |
|
|
|
|
public static String getCurrentScope(String token) throws ObjectNotFound, Exception { |
|
|
|
|
AuthorizationEntry authorizationEntry = Constants.authorizationService().get(token); |
|
|
|
|
String context = authorizationEntry.getContext(); |
|
|
|
|
logger.info("Context of token {} is {}", token, context); |
|
|
|
|
return context; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void setContextByName(String fullContextName) throws ObjectNotFound, Exception { |
|
|
|
|
String token = ContextTest.properties.getProperty(fullContextName); |
|
|
|
|
setContext(token); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void setContext(String token) throws ObjectNotFound, Exception{ |
|
|
|
|
private static void setContext(String token) throws ObjectNotFound, Exception { |
|
|
|
|
SecurityTokenProvider.instance.set(token); |
|
|
|
|
AuthorizationEntry authorizationEntry = Constants.authorizationService().get(token); |
|
|
|
|
ClientInfo clientInfo = authorizationEntry.getClientInfo(); |
|
|
|
|
logger.debug("User : {} - Type : {}", clientInfo.getId(), clientInfo.getType().name()); |
|
|
|
|
String qualifier = authorizationEntry.getQualifier(); |
|
|
|
|
Caller caller = new Caller(clientInfo, qualifier); |
|
|
|
|
AuthorizationProvider.instance.set(caller); |
|
|
|
|
ScopeProvider.instance.set(getCurrentScope(token)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@BeforeClass |
|
|
|
|
public static void beforeClass() throws Exception{ |
|
|
|
|
setContext(DEFAULT_TEST_SCOPE); |
|
|
|
|
public static void beforeClass() throws Exception { |
|
|
|
|
setContextByName(DEFAULT_TEST_SCOPE); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@AfterClass |
|
|
|
|
public static void afterClass() throws Exception{ |
|
|
|
|
public static void afterClass() throws Exception { |
|
|
|
|
SecurityTokenProvider.instance.reset(); |
|
|
|
|
ScopeProvider.instance.reset(); |
|
|
|
|
} |
|
|
|
|