From 93101b776f626634e82939266c645cb734976a61 Mon Sep 17 00:00:00 2001 From: "lucio.lelii" Date: Tue, 4 Oct 2016 13:00:12 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/Common/authorization-common-client@132578 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../authorization/client/proxy/Utils.java | 14 +++-- .../authorizationservice/cl/CallTest.java | 37 +++++++------ .../cl/TokenGenerator.java | 55 +++++++++++++++++++ 3 files changed, 85 insertions(+), 21 deletions(-) create mode 100644 src/test/java/org/gcube/common/authorizationservice/cl/TokenGenerator.java diff --git a/src/main/java/org/gcube/common/authorization/client/proxy/Utils.java b/src/main/java/org/gcube/common/authorization/client/proxy/Utils.java index 999e2ce..0ec0616 100644 --- a/src/main/java/org/gcube/common/authorization/client/proxy/Utils.java +++ b/src/main/java/org/gcube/common/authorization/client/proxy/Utils.java @@ -38,10 +38,14 @@ public class Utils { } protected static String getRealToken(String token) { - Pattern pattern = Pattern.compile(REAL_TOKEN_REGEXPR); - Matcher matcher = pattern.matcher(token); - matcher.find(); - String realToken = matcher.group(1); - return realToken; + try{ + Pattern pattern = Pattern.compile(REAL_TOKEN_REGEXPR); + Matcher matcher = pattern.matcher(token); + matcher.find(); + String realToken = matcher.group(1); + return realToken; + }catch(Exception e){ + throw new RuntimeException("token required for this method", e); + } } } diff --git a/src/test/java/org/gcube/common/authorizationservice/cl/CallTest.java b/src/test/java/org/gcube/common/authorizationservice/cl/CallTest.java index aab08e3..beb3c8b 100644 --- a/src/test/java/org/gcube/common/authorizationservice/cl/CallTest.java +++ b/src/test/java/org/gcube/common/authorizationservice/cl/CallTest.java @@ -20,14 +20,14 @@ public class CallTest { @Test public void resolveNodeToken() throws Exception{ - System.out.println(resolveToken("36501a0d-a205-4bf1-87ad-4c7185faa0d6")); //81caac0f-8a0d-4923-9312-7ff0eb3f2d5e|98187548")); + System.out.println(resolveToken("d7a6b96b-97eb-40fd-96ff-c8e5f37a91c7-98187548")); //81caac0f-8a0d-4923-9312-7ff0eb3f2d5e|98187548")); } - + @Test public void requestNodeToken() throws Exception { System.out.println(_requestNodeToken()); } - + @Test public void addPolicy() throws Exception { SecurityTokenProvider.instance.set(requestTestToken("/gcube/devNext/NextNext")); @@ -35,32 +35,36 @@ public class CallTest { policies.add(new User2ServicePolicy("/gcube/devNext/NextNext", new ServiceAccess(), Users.one("lucio.lelii"), Action.ACCESS )); authorizationService().addPolicies(policies); } - - + + @Test public void getPolicies() throws Exception{ SecurityTokenProvider.instance.set(requestTestToken("/gcube/devNext/NextNext")); List policies = authorizationService().getPolicies("/gcube/devsec/devVRE"); System.out.println(policies); } - + @Test public void removePolicy() throws Exception { authorizationService().removePolicies(2, 3, 4); } - + + @Test + public void requestToken() throws Exception{ + System.out.println(authorizationService().generateUserToken(new UserInfo("andrea.dellamico", new ArrayList()), "/gcube")); + } @Test(expected=RuntimeException.class) public void createKeyWithError() throws Exception { authorizationService().generateApiKey("TEST"); } -/* + /* @Test public void getSymmKey() throws Exception{ SecurityTokenProvider.instance.set(_requestNodeToken()); authorizationService().getSymmKey("/tmp"); }*/ - - + + @Test public void createKey() throws Exception { String token = requestTestToken("/gcube"); @@ -69,30 +73,31 @@ public class CallTest { System.out.println("key : "+key); System.out.println(resolveToken(key)); } - + @Test public void retrieveApiKeys() throws Exception { String token = requestTestToken("/gcube/devNext"); SecurityTokenProvider.instance.set(token); Map keys = authorizationService().retrieveApiKeys(); System.out.println("keys : "+keys); - + } - + public String _requestNodeToken() throws Exception { + SecurityTokenProvider.instance.set(requestTestToken("/gcube")); String token = authorizationService().requestActivation(new ContainerInfo("mynode",8080), "/gcube/devSec"); return token; } - + @Test public void createTestToken() throws Exception { System.out.println(requestTestToken("/gcube/devNext/NextNext")); } - + private String requestTestToken(String context) throws Exception{ return authorizationService().generateUserToken(new UserInfo("test.token", new ArrayList()), context); } - + private AuthorizationEntry resolveToken(String token) throws Exception{ AuthorizationEntry entry = authorizationService().get(token); return entry; diff --git a/src/test/java/org/gcube/common/authorizationservice/cl/TokenGenerator.java b/src/test/java/org/gcube/common/authorizationservice/cl/TokenGenerator.java new file mode 100644 index 0000000..47efe9e --- /dev/null +++ b/src/test/java/org/gcube/common/authorizationservice/cl/TokenGenerator.java @@ -0,0 +1,55 @@ +package org.gcube.common.authorizationservice.cl; + +import static org.gcube.common.authorization.client.Constants.authorizationService; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; + +import org.gcube.common.authorization.client.proxy.AuthorizationProxy; +import org.gcube.common.authorization.library.provider.ContainerInfo; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; + +public class TokenGenerator { + + //call with parameters : token host port filePath scope1 ... scopeN + public static void main(String[] args) { + + String host = args[0]; + String adminToken = args[1]; + int port = Integer.parseInt(args[2]); + File file = new File(args[3]); + + + try { + file.createNewFile(); + } catch (IOException e1) { + System.out.println("error creating file "+file.getAbsolutePath()); + e1.printStackTrace(); + } + + ContainerInfo containerInfo = new ContainerInfo(host, port); + + AuthorizationProxy proxy = authorizationService(); + + try(FileWriter fw = new FileWriter(file)){ + for (int index =4; index"+token+""); + } catch (Exception e) { + System.out.println("error generating token for context "+args[index]); + e.printStackTrace(); + } finally{ + SecurityTokenProvider.instance.reset(); + } + } + } catch (Exception e) { + System.out.println("error writing file "+file.getAbsolutePath()); + e.printStackTrace(); + } + + } + +} \ No newline at end of file