66 lines
2.5 KiB
Java
Executable File
66 lines
2.5 KiB
Java
Executable File
package org.gcube.data.analysis.nlphub.session;
|
|
|
|
import javax.servlet.ServletException;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
import org.gcube.common.authorization.library.AuthorizationEntry;
|
|
import org.gcube.common.authorization.library.provider.AuthorizationProvider;
|
|
import org.gcube.common.authorization.library.provider.ClientInfo;
|
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
|
import org.gcube.common.authorization.library.utils.Caller;
|
|
import org.gcube.common.scope.api.ScopeProvider;
|
|
import org.gcube.data.analysis.nlphub.shared.Constants;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
public class SessionUtils {
|
|
private static final Logger logger = LoggerFactory.getLogger(SessionUtils.class);
|
|
|
|
public String getToken(HttpServletRequest request) throws ServletException {
|
|
String token = request.getParameter(Constants.TOKEN_PARAMETER);
|
|
logger.debug("Token in request: " + token);
|
|
if (token == null || token.isEmpty()) {
|
|
logger.debug("Token is null");
|
|
throw new ServletException("Token is null");
|
|
}
|
|
|
|
setAuth(token);
|
|
return token;
|
|
}
|
|
|
|
private void setAuth(String token) throws ServletException {
|
|
try {
|
|
SecurityTokenProvider.instance.set(token);
|
|
AuthorizationEntry authorizationEntry = org.gcube.common.authorization.client.Constants
|
|
.authorizationService().get(token);
|
|
ClientInfo clientInfo = authorizationEntry.getClientInfo();
|
|
logger.debug("User : {} - Type : {}", clientInfo.getId(), clientInfo.getType().name());
|
|
String qualifier = authorizationEntry.getQualifier();
|
|
Caller caller = new Caller(clientInfo, qualifier);
|
|
AuthorizationProvider.instance.set(caller);
|
|
ScopeProvider.instance.set(authorizationEntry.getContext());
|
|
} catch (Exception e) {
|
|
logger.error("Error in set context: " + e.getLocalizedMessage(), e);
|
|
throw new ServletException("Error in set context: " + e.getLocalizedMessage(), e);
|
|
}
|
|
}
|
|
|
|
/*
|
|
* private static void checkToken(String token) throws Exception { if (token
|
|
* == null || token.isEmpty()) { logger.error("Token is null"); throw new
|
|
* Exception("Token is null"); } else { AuthorizationEntry entry;
|
|
*
|
|
* entry = authorizationService().get(token); ClientInfo clientInfo =
|
|
* entry.getClientInfo(); if (clientInfo == null) {
|
|
* logger.error("User not found."); throw new
|
|
* Exception("Authorization failed!"); } else { logger.debug("User: " +
|
|
* clientInfo.getId()); String context = entry.getContext();
|
|
* logger.debug("Context: " + context); }
|
|
*
|
|
* }
|
|
*
|
|
* }
|
|
*/
|
|
|
|
}
|