package org.gcube.authorization; import static org.gcube.common.authorization.client.Constants.authorizationService; import java.util.ArrayList; import org.gcube.common.authorization.client.Constants; import org.gcube.common.authorization.library.AuthorizationEntry; import org.gcube.common.authorization.library.provider.ClientInfo; import org.gcube.common.authorization.library.provider.ContainerInfo; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.authorization.library.provider.UserInfo; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Luca Frosini (ISTI - CNR) */ public class ContextAuthorizationTest extends ContextTest { private static Logger logger = LoggerFactory.getLogger(ContextAuthorizationTest.class); @Test public void getInfo() throws Exception { ContextTest.setContext(""); } @Test public void generateApplicationToken() throws Exception { ContextTest.setContext(ROOT); String context = "/d4science.research-infrastructures.eu/D4Research/AGINFRAplusDev"; UserInfo userInfo = new UserInfo("luca.frosini",new ArrayList<>()); String userToken = authorizationService().generateUserToken(userInfo, context); SecurityTokenProvider.instance.set(userToken); String applicationName = "ScienceCatalogue"; String generatedToken = authorizationService().generateExternalServiceToken(applicationName); logger.trace("Application Token for application {} in Context {} is {}", applicationName, ContextUtility.getCurrentContext(), generatedToken); } @Test public void generateHostToken() throws Exception { String currentContext = ContextUtility.getCurrentContext(); String host = "pc-frosini.isti.cnr.it"; int port = 8080; ContainerInfo containerInfo = new ContainerInfo(host, port); String tokenNode = authorizationService().requestActivation(containerInfo, currentContext); logger.trace("Token for Context {} for host {}:{} is {}", currentContext, host, port, tokenNode); } @Test public void generateUserToken() throws Exception { String currentContext = ContextUtility.getCurrentContext(); AuthorizationEntry authorizationEntry = Constants.authorizationService().get(SecurityTokenProvider.instance.get()); UserInfo userInfo = (UserInfo) authorizationEntry.getClientInfo(); String tokenNode = authorizationService().generateUserToken(userInfo, currentContext); logger.trace("Token for Context {} for {} is {}", currentContext, userInfo.getId(), tokenNode); } }