From 356da003c793f0c5c60ddb155da85407dd4a2bd7 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Tue, 29 Mar 2022 12:43:25 +0200 Subject: [PATCH] Added getSecret for a specific context --- .../authorization/utils/clientid/ClienIDManager.java | 11 +++++++++++ .../utils/socialservice/SocialService.java | 10 +++++----- .../gcube/common/authorization/utils/ContextTest.java | 6 +++--- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/gcube/common/authorization/utils/clientid/ClienIDManager.java b/src/main/java/org/gcube/common/authorization/utils/clientid/ClienIDManager.java index ecaf4f7..c74c50d 100644 --- a/src/main/java/org/gcube/common/authorization/utils/clientid/ClienIDManager.java +++ b/src/main/java/org/gcube/common/authorization/utils/clientid/ClienIDManager.java @@ -28,6 +28,17 @@ public class ClienIDManager implements RenewalProvider { return jwtSecret; } + + public Secret getSecret(String context) throws Exception { + TokenResponse tokenResponse = KeycloakClientFactory.newInstance().queryUMAToken(clientID, clientSecret, context, null); + + JWTSecret jwtSecret = new JWTSecret(tokenResponse.getAccessToken()); + jwtSecret.setRenewalProvider(this); + + jwtSecret.setTokenResponse(tokenResponse); + + return jwtSecret; + } @Override public Secret renew() throws Exception { diff --git a/src/main/java/org/gcube/common/authorization/utils/socialservice/SocialService.java b/src/main/java/org/gcube/common/authorization/utils/socialservice/SocialService.java index 1a8510d..8f492c8 100644 --- a/src/main/java/org/gcube/common/authorization/utils/socialservice/SocialService.java +++ b/src/main/java/org/gcube/common/authorization/utils/socialservice/SocialService.java @@ -38,7 +38,7 @@ public class SocialService { private static final String RESOURCE = "jersey-servlet"; private static final String SERVICE_NAME = "SocialNetworking"; - private static final String SERVICE_CLASSE = "Portal"; + private static final String SERVICE_CLASS = "Portal"; private static Logger logger = LoggerFactory.getLogger(SocialService.class); private String serviceBasePath; @@ -73,7 +73,7 @@ public class SocialService { SecretManager secretManager = SecretManagerProvider.instance.get(); try { SimpleQuery query = queryFor(GCoreEndpoint.class); - query.addCondition(String.format("$resource/Profile/ServiceClass/text() eq '%s'", SERVICE_CLASSE)); + query.addCondition(String.format("$resource/Profile/ServiceClass/text() eq '%s'", SERVICE_CLASS)); query.addCondition("$resource/Profile/DeploymentData/Status/text() eq 'ready'"); query.addCondition(String.format("$resource/Profile/ServiceName/text() eq '%s'", SERVICE_NAME)); query.setResult( @@ -84,20 +84,20 @@ public class SocialService { List endpoints = client.submit(query); if(endpoints == null || endpoints.isEmpty()) { throw new Exception("Cannot retrieve the GCoreEndpoint SERVICE_NAME: " + SERVICE_NAME - + ", SERVICE_CLASSE: " + SERVICE_CLASSE + ", in scope: " + secretManager.getContext()); + + ", SERVICE_CLASSE: " + SERVICE_CLASS + ", in scope: " + secretManager.getContext()); } this.serviceBasePath = endpoints.get(0); if(serviceBasePath == null) throw new Exception("Endpoint:" + RESOURCE + ", is null for SERVICE_NAME: " + SERVICE_NAME - + ", SERVICE_CLASSE: " + SERVICE_CLASSE + ", in scope: " + secretManager.getContext()); + + ", SERVICE_CLASSE: " + SERVICE_CLASS + ", in scope: " + secretManager.getContext()); serviceBasePath = serviceBasePath.endsWith("/") ? serviceBasePath : serviceBasePath + "/"; } catch(Exception e) { String error = "An error occurred during GCoreEndpoint discovery, SERVICE_NAME: " + SERVICE_NAME - + ", SERVICE_CLASSE: " + SERVICE_CLASSE + ", in scope: " + secretManager.getContext() + "."; + + ", SERVICE_CLASSE: " + SERVICE_CLASS + ", in scope: " + secretManager.getContext() + "."; logger.error(error, e); throw new Exception(error); } diff --git a/src/test/java/org/gcube/common/authorization/utils/ContextTest.java b/src/test/java/org/gcube/common/authorization/utils/ContextTest.java index 6cd1d2d..1286cb3 100644 --- a/src/test/java/org/gcube/common/authorization/utils/ContextTest.java +++ b/src/test/java/org/gcube/common/authorization/utils/ContextTest.java @@ -37,12 +37,12 @@ public class ContextTest { throw new RuntimeException(e); } - //DEFAULT_TEST_SCOPE_NAME = "/pred4s/preprod/preVRE"; + // DEFAULT_TEST_SCOPE_NAME = "/pred4s/preprod/preVRE"; // DEFAULT_TEST_SCOPE_NAME = "/gcube/devsec/devVRE"; ROOT = "/gcube"; -// VO = ROOT + "/devsec"; -// VRE = VO + "/devVRE"; + // VO = ROOT + "/devsec"; + // VRE = VO + "/devVRE"; VO = ROOT + "/devNext"; VRE = VO + "/NextNext";