Пример #1
0
 /**
  * Handling the Soap Logout Request
  * Should remove the session and go back to login page.
  * @param sessionId
  */
 public function Logout()
 {
     $sid = $this->getParamValue(0);
     $removed = 0;
     if ($sid) {
         $ses = $sesReload = CalemSession::load($sid);
         if ($sesReload) {
             //Found a valid session so let's remove it
             $removed = 1;
             $sesReload->remove();
         }
     }
     if ($this->logger->isDebugEnabled()) {
         $this->logger->debug("Logout, sid=" . $sid . " sessionFound=" . ($sesReload ? $sesReload->toString() : "Session not found"));
     }
     //Always return a correct value
     return array('sid' => $sid, 'removed' => $removed);
 }
Пример #2
0
 /**
  * Login service.
  */
 public function doLogin($user, $passwd)
 {
     $securityBo = CalemFactory::getSecurityBo();
     list($succ, $userDbo) = $securityBo->verifyLogin($user, $passwd);
     if ($succ) {
         //Login is successful.
         //Creating a session
         $ses = new CalemSession();
         //configure session settings
         $ses->set('setting', array('lang' => $this->lang, 'theme' => $this->theme, 'loadmode' => $this->loadmode, 'login_time' => mktime()));
         $ses->set('user', $userDbo->getRow());
         //Store off the user.
         $ses->save();
     }
     return array($succ, $ses);
 }
Пример #3
0
require_once _CALEM_DIR_ . 'server/include/core/CalemFactory.php';
require_once _CALEM_DIR_ . 'server/include/core/session/CalemSession.php';
function addCustomInfo($path, $id, $subsets, $list)
{
    foreach ($subsets as $value) {
        $list[] = array('id' => $path . $id, 'ext' => $value);
    }
    return $list;
}
//Start handling the request.
$logger =& LoggerManager::getLogger('JsPkgCustom');
$sid = isset($_REQUEST['sessionId']) ? $_REQUEST['sessionId'] : null;
$cont = false;
if ($sid) {
    //Let's verify session validity
    $sesReload = CalemSession::load($sid);
    if ($sesReload) {
        //Found a valid session so let's grant access
        $cont = true;
        if ($logger->isInfoEnabled()) {
            $logger->info("Found the correct session: " . $sesReload->toString());
        }
        $userRow = $sesReload->get('user');
        $setting = $sesReload->get('setting');
        $lang = $setting['lang'];
        $loadmode = $setting['loadmode'];
    }
}
if (!$cont) {
    $logger->error("sid=" . $sid . " not found, service not provided");
    die("Session is not valid, service is not provided.");
Пример #4
0
 /**
  * Remove session
  */
 public function remove()
 {
     $sm = CalemSession::getSessionManager();
     $sm->remove($this->sid);
 }
Пример #5
0
 /**
  * Authenticate the request by inspecting the sessionId passed in.
  */
 private function authenticate()
 {
     if (!$this->reqHeaders || !is_array($this->reqHeaders)) {
         return false;
     }
     //Let's find out the sessionId field
     foreach ($this->reqHeaders as $reqh) {
         if ($reqh->name === CALEM_SOAP_SESSIONID) {
             $sid = $reqh->value;
             break;
         }
     }
     if (!isset($sid)) {
         $this->logger->error("sid not set, authentication failed");
         return false;
     }
     //Verify sessionId and lifetime
     $sesReload = CalemSession::load($sid);
     if (!isset($sesReload)) {
         return false;
     }
     //Refresh timeout setting.
     $sesReload->renew();
     //Keep track of the userId for data operation
     $GLOBALS['calem_ses_data'] = $sesReload->get('user');
     return true;
 }