51 lines
1.4 KiB
Java
51 lines
1.4 KiB
Java
package org.gcube.smartgears.handler.resourceregistry;
|
|
|
|
import org.gcube.common.authorization.client.proxy.AuthorizationProxy;
|
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
|
import org.gcube.common.scope.api.ScopeProvider;
|
|
import org.gcube.smartgears.provider.ProviderFactory;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
public class ContextUtility {
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(ContextUtility.class);
|
|
|
|
private static AuthorizationProxy authorizationProxy;
|
|
|
|
static {
|
|
authorizationProxy = ProviderFactory.provider().authorizationProxy();
|
|
}
|
|
|
|
public static void resetContex() {
|
|
SecurityTokenProvider.instance.reset();
|
|
ScopeProvider.instance.reset();
|
|
}
|
|
|
|
public static void setContextFromToken(String token) {
|
|
if (token == null || token.compareTo("") == 0) {
|
|
resetContex();
|
|
} else {
|
|
SecurityTokenProvider.instance.set(token);
|
|
String scope = getContextName(token);
|
|
ScopeProvider.instance.set(scope);
|
|
}
|
|
|
|
}
|
|
|
|
public static String getCurrentContextName() {
|
|
String token = SecurityTokenProvider.instance.get();
|
|
return getContextName(token);
|
|
}
|
|
|
|
public static String getContextName(String token) {
|
|
try {
|
|
return authorizationProxy.get(token).getContext();
|
|
} catch (Exception e) {
|
|
logger.error("Error retrieving context form token {}, it should never happen", token, e);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
}
|