package org.ovirt.engine.core.bll.aaa; import org.ovirt.engine.core.bll.QueriesCommandBase; import org.ovirt.engine.core.common.businessentities.aaa.DbUser; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /* * This query validates the session, returning the user which is logged in this session. */ public class ValidateSessionQuery<P extends VdcQueryParametersBase> extends QueriesCommandBase<P> { private static final Logger log = LoggerFactory.getLogger(ValidateSessionQuery.class); public ValidateSessionQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { log.debug("Calling ValidateSession"); validateSession(getParameters().getSessionId()); log.debug("ValidateSession ended"); } private void validateSession(String sessionID) { getQueryReturnValue().setSucceeded(false); if (sessionID != null) { log.debug("Input session ID is '{}'", sessionID); DbUser user = (DbUser) getSessionUser(sessionID); if (user != null) { log.debug("Found session user"); getQueryReturnValue().setReturnValue(user); getQueryReturnValue().setSucceeded(true); } else { getQueryReturnValue().setExceptionString("Session does not exist."); log.debug("Didn't find session user"); } } } protected Object getSessionUser(String sessionID) { return getSessionDataContainer().getUser(sessionID, false); } }