Switching to new authz
This commit is contained in:
parent
fab1cb240a
commit
3e1b48d645
|
@ -6,8 +6,8 @@ import java.util.Properties;
|
||||||
import javax.ws.rs.InternalServerErrorException;
|
import javax.ws.rs.InternalServerErrorException;
|
||||||
|
|
||||||
import org.gcube.common.authorization.utils.manager.SecretManager;
|
import org.gcube.common.authorization.utils.manager.SecretManager;
|
||||||
|
import org.gcube.common.authorization.utils.secret.JWTSecret;
|
||||||
import org.gcube.common.authorization.utils.secret.Secret;
|
import org.gcube.common.authorization.utils.secret.Secret;
|
||||||
import org.gcube.common.authorization.utils.secret.SecretUtility;
|
|
||||||
import org.gcube.common.keycloak.KeycloakClientFactory;
|
import org.gcube.common.keycloak.KeycloakClientFactory;
|
||||||
import org.gcube.common.keycloak.model.TokenResponse;
|
import org.gcube.common.keycloak.model.TokenResponse;
|
||||||
|
|
||||||
|
@ -18,43 +18,6 @@ public class Constants {
|
||||||
|
|
||||||
public static final String CATALOGUE_NAME = "gCat";
|
public static final String CATALOGUE_NAME = "gCat";
|
||||||
|
|
||||||
|
|
||||||
// private static final String PROPERTY_FILENAME = "config.properties";
|
|
||||||
// /*
|
|
||||||
// * Key : Context
|
|
||||||
// * Value : Application Token
|
|
||||||
// */
|
|
||||||
// protected static final Map<String,String> applicationTokens;
|
|
||||||
//
|
|
||||||
// static {
|
|
||||||
// try {
|
|
||||||
// applicationTokens = new HashMap<>();
|
|
||||||
// Properties properties = new Properties();
|
|
||||||
// InputStream input = Constants.class.getClassLoader().getResourceAsStream(PROPERTY_FILENAME);
|
|
||||||
// // load a properties file
|
|
||||||
// properties.load(input);
|
|
||||||
// Enumeration<?> enumeration = properties.propertyNames();
|
|
||||||
// while(enumeration.hasMoreElements()) {
|
|
||||||
// String context = (String) enumeration.nextElement();
|
|
||||||
// String applicationToken = properties.getProperty(context);
|
|
||||||
// applicationTokens.put(context, applicationToken);
|
|
||||||
// }
|
|
||||||
// } catch(Exception e) {
|
|
||||||
// throw new WebApplicationException(e);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Deprecated
|
|
||||||
// private static String getCatalogueApplicationToken() {
|
|
||||||
// String context = SecretManager.instance.get().getContext();
|
|
||||||
// try {
|
|
||||||
// return applicationTokens.get(context);
|
|
||||||
// } catch(Exception e) {
|
|
||||||
// throw new InternalServerErrorException(
|
|
||||||
// "Unable to retrieve Application Token for context " + context, e);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
private static final String CLIENT_SECRET_FILENAME = "config.properties";
|
private static final String CLIENT_SECRET_FILENAME = "config.properties";
|
||||||
private static final String CLIENT_ID = "gcat";
|
private static final String CLIENT_ID = "gcat";
|
||||||
protected static String clientSecret;
|
protected static String clientSecret;
|
||||||
|
@ -75,24 +38,16 @@ public class Constants {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getJWTAccessToken() throws Exception {
|
private static TokenResponse getJWTAccessToken() throws Exception {
|
||||||
String contextToAuthorise = SecretManager.instance.get().getContext();
|
String contextToAuthorise = SecretManager.instance.get().getContext();
|
||||||
TokenResponse tr = KeycloakClientFactory.newInstance().queryUMAToken(CLIENT_ID, getClientSecret(contextToAuthorise), contextToAuthorise, null);
|
TokenResponse tr = KeycloakClientFactory.newInstance().queryUMAToken(CLIENT_ID, getClientSecret(contextToAuthorise), contextToAuthorise, null);
|
||||||
return tr.getAccessToken();
|
return tr;
|
||||||
}
|
|
||||||
|
|
||||||
public static String getCatalogueSecurityToken() throws Exception {
|
|
||||||
try {
|
|
||||||
return getJWTAccessToken();
|
|
||||||
}catch (Exception e) {
|
|
||||||
throw e;
|
|
||||||
// return getCatalogueApplicationToken();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Secret getCatalogueSecret() throws Exception {
|
public static Secret getCatalogueSecret() throws Exception {
|
||||||
String securityToken = getCatalogueSecurityToken();
|
TokenResponse tr = getJWTAccessToken();
|
||||||
return SecretUtility.getSecretByTokenString(securityToken);
|
Secret secret = new JWTSecret(tr.getAccessToken());
|
||||||
|
return secret;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -388,7 +388,7 @@ public class CKANPackageTest extends ContextTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CKANPackage createPackage(ObjectMapper mapper) throws Exception {
|
protected CKANPackage createPackage(ObjectMapper mapper, Boolean socialPost) throws Exception {
|
||||||
String currentContext = SecretManager.instance.get().getContext();
|
String currentContext = SecretManager.instance.get().getContext();
|
||||||
ScopeBean scopeBean = new ScopeBean(currentContext);
|
ScopeBean scopeBean = new ScopeBean(currentContext);
|
||||||
String ckanOrganizationName = CKANPackage.getOrganizationName(scopeBean);
|
String ckanOrganizationName = CKANPackage.getOrganizationName(scopeBean);
|
||||||
|
@ -435,6 +435,12 @@ public class CKANPackageTest extends ContextTest {
|
||||||
CKANPackage ckanPackage = new CKANPackage();
|
CKANPackage ckanPackage = new CKANPackage();
|
||||||
ckanPackage.setName(ITEM_NAME_VALUE);
|
ckanPackage.setName(ITEM_NAME_VALUE);
|
||||||
//ckanPackage.setApiKey(CKANUtility.getSysAdminAPI());
|
//ckanPackage.setApiKey(CKANUtility.getSysAdminAPI());
|
||||||
|
|
||||||
|
MultivaluedMap<String, String> mvm = new MultivaluedHashMap<String,String>();
|
||||||
|
mvm.add(GCatConstants.SOCIAL_POST_QUERY_PARAMETER, socialPost.toString());
|
||||||
|
UriInfo uriInfo = getUriInfo(mvm);
|
||||||
|
ckanPackage.setUriInfo(uriInfo);
|
||||||
|
|
||||||
String createdItem = ckanPackage.create(mapper.writeValueAsString(itemObjectNode));
|
String createdItem = ckanPackage.create(mapper.writeValueAsString(itemObjectNode));
|
||||||
logger.debug(createdItem);
|
logger.debug(createdItem);
|
||||||
|
|
||||||
|
@ -444,7 +450,7 @@ public class CKANPackageTest extends ContextTest {
|
||||||
@Test
|
@Test
|
||||||
public void create() throws Exception {
|
public void create() throws Exception {
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
createPackage(mapper);
|
createPackage(mapper, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -459,7 +465,7 @@ public class CKANPackageTest extends ContextTest {
|
||||||
@Test
|
@Test
|
||||||
public void createReadUpdateUpdatePurge() throws Exception {
|
public void createReadUpdateUpdatePurge() throws Exception {
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
createPackage(mapper);
|
createPackage(mapper, false);
|
||||||
|
|
||||||
CKANPackage ckanPackage = new CKANPackage();
|
CKANPackage ckanPackage = new CKANPackage();
|
||||||
ckanPackage.setName(ITEM_NAME_VALUE);
|
ckanPackage.setName(ITEM_NAME_VALUE);
|
||||||
|
@ -527,6 +533,7 @@ public class CKANPackageTest extends ContextTest {
|
||||||
logger.debug(ret);
|
logger.debug(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore
|
||||||
@Test
|
@Test
|
||||||
//(expected = NotFoundException.class)
|
//(expected = NotFoundException.class)
|
||||||
public void delete() throws Exception {
|
public void delete() throws Exception {
|
||||||
|
@ -573,7 +580,7 @@ public class CKANPackageTest extends ContextTest {
|
||||||
|
|
||||||
|
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
createPackage(mapper);
|
createPackage(mapper, false);
|
||||||
|
|
||||||
|
|
||||||
ContextTest.setContextByName("leonardo.candela_"+VRE);
|
ContextTest.setContextByName("leonardo.candela_"+VRE);
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import org.gcube.common.authorization.utils.secret.Secret;
|
||||||
import org.gcube.gcat.ContextTest;
|
import org.gcube.gcat.ContextTest;
|
||||||
import org.gcube.gcat.utils.Constants;
|
import org.gcube.gcat.utils.Constants;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -16,8 +17,9 @@ public class SocialPostTest extends ContextTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testToken() throws Exception {
|
public void testToken() throws Exception {
|
||||||
logger.debug("Application Token is {}", Constants.getCatalogueSecurityToken());
|
Secret secret = Constants.getCatalogueSecret();
|
||||||
ContextTest.setContext(Constants.getCatalogueSecurityToken());
|
logger.debug("Application Token is {}", secret.getToken());
|
||||||
|
ContextTest.set(secret);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -14,7 +14,7 @@ public class ConstantsTest extends ContextTest {
|
||||||
@Test
|
@Test
|
||||||
public void testGetApplicationToken() throws Exception {
|
public void testGetApplicationToken() throws Exception {
|
||||||
logger.debug("Application token for Context {} is {}", SecretManager.instance.get().getContext(),
|
logger.debug("Application token for Context {} is {}", SecretManager.instance.get().getContext(),
|
||||||
Constants.getCatalogueSecurityToken());
|
Constants.getCatalogueSecret().getToken());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue