2015-05-18 19:15:58 +02:00
|
|
|
package org.gcube.common.authorizationservice.cl;
|
|
|
|
|
|
|
|
import static org.gcube.common.authorization.client.Constants.authorizationService;
|
|
|
|
|
2016-11-14 17:39:00 +01:00
|
|
|
import java.io.BufferedReader;
|
|
|
|
import java.io.BufferedWriter;
|
|
|
|
import java.io.FileInputStream;
|
|
|
|
import java.io.FileWriter;
|
|
|
|
import java.io.InputStreamReader;
|
2015-11-27 18:06:28 +01:00
|
|
|
import java.util.ArrayList;
|
2016-11-14 17:39:00 +01:00
|
|
|
import java.util.HashSet;
|
2016-01-26 18:45:27 +01:00
|
|
|
import java.util.List;
|
2016-09-07 14:11:39 +02:00
|
|
|
import java.util.Map;
|
2016-11-14 17:39:00 +01:00
|
|
|
import java.util.Set;
|
2015-05-29 18:32:43 +02:00
|
|
|
|
2016-11-14 17:39:00 +01:00
|
|
|
import org.gcube.common.authorization.client.proxy.AuthorizationProxy;
|
2016-05-13 17:00:54 +02:00
|
|
|
import org.gcube.common.authorization.library.AuthorizationEntry;
|
2016-02-05 17:23:25 +01:00
|
|
|
import org.gcube.common.authorization.library.policies.Action;
|
2016-01-26 18:45:27 +01:00
|
|
|
import org.gcube.common.authorization.library.policies.Policy;
|
|
|
|
import org.gcube.common.authorization.library.policies.ServiceAccess;
|
|
|
|
import org.gcube.common.authorization.library.policies.User2ServicePolicy;
|
2016-02-05 17:23:25 +01:00
|
|
|
import org.gcube.common.authorization.library.policies.Users;
|
2016-07-22 14:27:10 +02:00
|
|
|
import org.gcube.common.authorization.library.provider.ContainerInfo;
|
2016-07-14 17:47:45 +02:00
|
|
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
2016-01-22 17:28:17 +01:00
|
|
|
import org.gcube.common.authorization.library.provider.UserInfo;
|
2016-11-14 17:39:00 +01:00
|
|
|
import org.junit.Ignore;
|
2015-05-18 19:15:58 +02:00
|
|
|
import org.junit.Test;
|
|
|
|
public class CallTest {
|
|
|
|
|
2016-08-30 11:29:19 +02:00
|
|
|
@Test
|
|
|
|
public void resolveNodeToken() throws Exception{
|
2016-11-14 17:39:00 +01:00
|
|
|
System.out.println(resolveToken("80048c62-26e0-4df3-a5ec-f893aee07243-843339462")); //81caac0f-8a0d-4923-9312-7ff0eb3f2d5e|98187548"));
|
|
|
|
|
2016-08-30 11:29:19 +02:00
|
|
|
}
|
2016-10-04 15:00:12 +02:00
|
|
|
|
2015-05-18 19:15:58 +02:00
|
|
|
@Test
|
2016-07-22 14:27:10 +02:00
|
|
|
public void requestNodeToken() throws Exception {
|
2016-09-30 18:27:04 +02:00
|
|
|
System.out.println(_requestNodeToken());
|
2015-05-18 19:15:58 +02:00
|
|
|
}
|
2016-10-04 15:00:12 +02:00
|
|
|
|
2016-01-26 18:45:27 +01:00
|
|
|
@Test
|
|
|
|
public void addPolicy() throws Exception {
|
2016-09-30 11:20:29 +02:00
|
|
|
SecurityTokenProvider.instance.set(requestTestToken("/gcube/devNext/NextNext"));
|
2016-01-26 18:45:27 +01:00
|
|
|
List<Policy> policies = new ArrayList<Policy>();
|
2016-09-30 11:20:29 +02:00
|
|
|
policies.add(new User2ServicePolicy("/gcube/devNext/NextNext", new ServiceAccess(), Users.one("lucio.lelii"), Action.ACCESS ));
|
2016-01-26 18:45:27 +01:00
|
|
|
authorizationService().addPolicies(policies);
|
2015-06-04 18:49:59 +02:00
|
|
|
}
|
2016-10-04 15:00:12 +02:00
|
|
|
|
2015-06-04 18:49:59 +02:00
|
|
|
@Test
|
2016-01-26 18:45:27 +01:00
|
|
|
public void getPolicies() throws Exception{
|
2016-11-14 17:39:00 +01:00
|
|
|
SecurityTokenProvider.instance.set(requestTestToken("/gcube/devNext"));
|
|
|
|
List<Policy> policies = authorizationService().getPolicies("/gcube/devsec");
|
|
|
|
for (Policy policy: policies)
|
|
|
|
System.out.println(policy);
|
2015-06-04 18:49:59 +02:00
|
|
|
}
|
2016-10-04 15:00:12 +02:00
|
|
|
|
2015-11-24 19:26:37 +01:00
|
|
|
@Test
|
2016-01-26 18:45:27 +01:00
|
|
|
public void removePolicy() throws Exception {
|
2016-02-01 15:14:44 +01:00
|
|
|
authorizationService().removePolicies(2, 3, 4);
|
2015-11-24 19:26:37 +01:00
|
|
|
}
|
2016-10-04 15:00:12 +02:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void requestToken() throws Exception{
|
2016-11-14 17:39:00 +01:00
|
|
|
System.out.println(authorizationService().generateUserToken(new UserInfo("test.gcube", new ArrayList<String>()), "/gcube/devsec"));
|
2016-10-04 15:00:12 +02:00
|
|
|
}
|
2016-07-14 17:47:45 +02:00
|
|
|
@Test(expected=RuntimeException.class)
|
|
|
|
public void createKeyWithError() throws Exception {
|
|
|
|
authorizationService().generateApiKey("TEST");
|
|
|
|
}
|
2016-11-14 17:39:00 +01:00
|
|
|
|
2016-09-30 18:27:04 +02:00
|
|
|
@Test
|
|
|
|
public void getSymmKey() throws Exception{
|
|
|
|
SecurityTokenProvider.instance.set(_requestNodeToken());
|
|
|
|
authorizationService().getSymmKey("/tmp");
|
2016-10-26 09:48:56 +02:00
|
|
|
}
|
2016-10-04 15:00:12 +02:00
|
|
|
|
|
|
|
|
2016-07-14 17:47:45 +02:00
|
|
|
@Test
|
|
|
|
public void createKey() throws Exception {
|
2016-09-30 18:27:04 +02:00
|
|
|
String token = requestTestToken("/gcube");
|
2016-07-14 17:47:45 +02:00
|
|
|
SecurityTokenProvider.instance.set(token);
|
2016-09-30 18:27:04 +02:00
|
|
|
String key = authorizationService().generateApiKey("PIPPO");
|
2016-07-14 17:47:45 +02:00
|
|
|
System.out.println("key : "+key);
|
|
|
|
System.out.println(resolveToken(key));
|
|
|
|
}
|
2016-10-04 15:00:12 +02:00
|
|
|
|
2016-09-07 14:11:39 +02:00
|
|
|
@Test
|
|
|
|
public void retrieveApiKeys() throws Exception {
|
|
|
|
String token = requestTestToken("/gcube/devNext");
|
|
|
|
SecurityTokenProvider.instance.set(token);
|
|
|
|
Map<String, String> keys = authorizationService().retrieveApiKeys();
|
|
|
|
System.out.println("keys : "+keys);
|
2016-10-04 15:00:12 +02:00
|
|
|
|
2016-09-07 14:11:39 +02:00
|
|
|
}
|
2016-10-04 15:00:12 +02:00
|
|
|
|
2016-09-30 18:27:04 +02:00
|
|
|
public String _requestNodeToken() throws Exception {
|
2016-11-14 17:39:00 +01:00
|
|
|
SecurityTokenProvider.instance.set(requestTestToken("/d4science.research-infrastructures.eu"));
|
|
|
|
String token = authorizationService().requestActivation(new ContainerInfo("node65.d4science.org",80), "/d4science.research-infrastructures.eu");
|
2016-09-30 18:27:04 +02:00
|
|
|
return token;
|
|
|
|
}
|
2016-10-04 15:00:12 +02:00
|
|
|
|
2016-08-30 11:29:19 +02:00
|
|
|
@Test
|
|
|
|
public void createTestToken() throws Exception {
|
2016-10-26 09:48:56 +02:00
|
|
|
System.out.println(requestTestToken("/gcube/devsec/devVRE"));
|
2016-08-30 11:29:19 +02:00
|
|
|
}
|
2016-10-04 15:00:12 +02:00
|
|
|
|
2016-07-14 17:47:45 +02:00
|
|
|
private String requestTestToken(String context) throws Exception{
|
2016-11-14 17:39:00 +01:00
|
|
|
return authorizationService().generateUserToken(new UserInfo("lucio.lelii", new ArrayList<String>()), context);
|
2016-07-14 17:47:45 +02:00
|
|
|
}
|
2016-10-04 15:00:12 +02:00
|
|
|
|
2016-07-14 17:47:45 +02:00
|
|
|
private AuthorizationEntry resolveToken(String token) throws Exception{
|
|
|
|
AuthorizationEntry entry = authorizationService().get(token);
|
|
|
|
return entry;
|
|
|
|
}
|
2016-11-14 17:39:00 +01:00
|
|
|
|
|
|
|
/* List<String> scopes = Arrays.asList("/d4science.research-infrastructures.eu/gCubeApps/TabularDataLab",
|
|
|
|
"/d4science.research-infrastructures.eu/FARM/AquaMaps",
|
|
|
|
"/d4science.research-infrastructures.eu/FARM/WECAFC-FIRMS",
|
|
|
|
"/d4science.research-infrastructures.eu/gCubeApps/PGFA-UFMT",
|
|
|
|
"/d4science.research-infrastructures.eu/FARM",
|
|
|
|
"/d4science.research-infrastructures.eu/gCubeApps/EcologicalModelling",
|
|
|
|
"/d4science.research-infrastructures.eu/gCubeApps/EuBrazilOpenBio",
|
|
|
|
"/d4science.research-infrastructures.eu/gCubeApps/AlieiaVRE",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ENVRIPlus",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ENVRI",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ICES_DASC",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/FAO_TunaAtlas",
|
|
|
|
/d4science.research-infrastructures.eu/SoBigData/ResourceCatalogue",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/StocksAndFisheriesKB",
|
|
|
|
/d4science.research-infrastructures.eu/SoBigData/TagMe",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/BlueCommons",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ICES_TCSSM",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/OpenIt",
|
|
|
|
/d4science.research-infrastructures.eu/SmartArea/SmartApps",
|
|
|
|
/d4science.research-infrastructures.eu",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/Parthenos",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/AquacultureAtlasGeneration",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/IGDI",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/RStudioLab",
|
|
|
|
/d4science.research-infrastructures.eu/SoBigData",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/BlueBridgeProject",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/rScience",
|
|
|
|
/d4science.research-infrastructures.eu/FARM/VME-DB",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/EllinikaPsariaVRE",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/gCube",
|
|
|
|
/d4science.research-infrastructures.eu/FARM/TBTI_VRE",
|
|
|
|
/d4science.research-infrastructures.eu/FARM/GRSF",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/DocumentsWorkflow",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ICOS_ETC",
|
|
|
|
/d4science.research-infrastructures.eu/SoBigData/CityOfCitizens",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/SoBigData.eu",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/BiOnym",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/PerformanceEvaluationInAquaculture",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/SmartArea",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ICES_TCRE",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/CNR_OpenScienceTF",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/BlueBRIDGE-PSC",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/BOBLME_HilsaAWG",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ScalableDataMining",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/BiodiversityLab",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/DESCRAMBLE",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ICES_FIACO",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/BlueBRIDGE-EAB",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ARIADNE",
|
|
|
|
/d4science.research-infrastructures.eu/SmartArea/SmartBuilding",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ProtectedAreaImpactMaps",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ForkysVRE",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/EGIEngage",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ICES_StockAssessmentAdvanced",
|
|
|
|
/d4science.research-infrastructures.eu/FARM/GRSF",
|
|
|
|
/d4science.research-infrastructures.eu/SmartArea",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/RPrototypingLab",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/TCom",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ICCAT_BFT-E",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/ICES_DALSA",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/SoBigData.it",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/EGIP",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/BlueUptake",
|
|
|
|
/d4science.research-infrastructures.eu/FARM/iMarineBoardVRE",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/KnowledgeBridging",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/EFG",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/StockAssessment",
|
|
|
|
/d4science.research-infrastructures.eu/gCubeApps/iSearch",
|
|
|
|
"/d4science.research-infrastructures.eu/gCubeApps",
|
|
|
|
"/d4science.research-infrastructures.eu/gCubeApps/StrategicInvestmentAnalysis")*/
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void requestListOfTokenForVREs() throws Exception{
|
|
|
|
SecurityTokenProvider.instance.set(requestTestToken("/d4science.research-infrastructures.eu"));
|
|
|
|
|
|
|
|
String jrNode ="tabulardata.d4science.org";
|
|
|
|
int jrPort =8080;
|
|
|
|
|
|
|
|
AuthorizationProxy proxy = authorizationService();
|
|
|
|
|
|
|
|
try(BufferedReader isr = new BufferedReader(new InputStreamReader(new FileInputStream("./src/test/resources/Scopes.txt")));
|
|
|
|
BufferedWriter bw = new BufferedWriter(new FileWriter("./src/test/resources/tokens-"+jrNode+".txt"))){
|
|
|
|
String line = null;
|
|
|
|
|
|
|
|
|
|
|
|
while ( (line=isr.readLine())!=null){
|
|
|
|
System.out.println(" retrieving token for scope "+line);
|
|
|
|
String token = proxy.requestActivation(new ContainerInfo(jrNode,jrPort), line.trim());
|
|
|
|
bw.write(String.format("<token>%s</token>", token));
|
|
|
|
bw.newLine();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@Ignore @Test
|
|
|
|
public void checkDiff() throws Exception{
|
|
|
|
|
|
|
|
|
|
|
|
Set<String> scopes = new HashSet<String>();
|
|
|
|
|
|
|
|
try(BufferedReader isr = new BufferedReader(new InputStreamReader(new FileInputStream("./src/test/resources/Scopes.txt")))){
|
|
|
|
String line = null;
|
|
|
|
|
|
|
|
while ( (line=isr.readLine())!=null){
|
|
|
|
System.out.println(scopes.size()+" "+line);
|
|
|
|
if (scopes.contains(line.trim()))
|
|
|
|
System.out.println("already contians "+line);
|
|
|
|
else scopes.add(line.trim());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
System.out.println("initial scope count is "+scopes.size());
|
|
|
|
|
|
|
|
|
|
|
|
try(BufferedReader isr = new BufferedReader(new InputStreamReader(new FileInputStream("./src/test/resources/createdScope.txt")))){
|
|
|
|
String line = null;
|
|
|
|
|
|
|
|
|
|
|
|
while ( (line=isr.readLine())!=null){
|
|
|
|
if (!scopes.remove(line.trim()))
|
|
|
|
System.out.println("cannot remove scope "+line.trim());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
System.out.println("final scope count is "+scopes.size());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2015-05-18 19:15:58 +02:00
|
|
|
}
|