getHelloMessage() public method

public getHelloMessage ( ) : Thruway\Message\HelloMessage
return Thruway\Message\HelloMessage
Example #1
0
 /**
  * Process HelloMessage
  *
  * @param \Thruway\Session $session
  * @param \Thruway\Message\WelcomeMessage $msg
  * @throws InvalidRealmNameException
  */
 private function processSendWelcome(Session $session, WelcomeMessage $msg)
 {
     $details = $session->getHelloMessage()->getDetails();
     if (is_object($details) && isset($details->roles) && is_object($details->roles)) {
         $session->setRoleFeatures($details->roles);
     }
     $session->setState(Session::STATE_UP);
     // this should probably be after authentication
 }
 /**
  * Call the handler that was registered to handle the Authenticate Message
  *
  * @param $authMethod
  * @param $authMethodInfo
  * @param Realm $realm
  * @param Session $session
  * @param AuthenticateMessage $msg
  */
 private function onAuthenticateHandler($authMethod, $authMethodInfo, Realm $realm, Session $session, AuthenticateMessage $msg)
 {
     $onAuthenticateSuccess = function ($res) use($realm, $session) {
         if (count($res) < 1) {
             $session->abort(new \stdClass(), "thruway.error.authentication_failure");
             return;
         }
         // we should figure out a way to have the router send the welcome
         // message so that the roles and extras that go along with it can be
         // filled in
         if ($res[0] == "SUCCESS") {
             $welcomeDetails = new \stdClass();
             if (isset($res[1]->authid)) {
                 $session->getAuthenticationDetails()->setAuthId($res[1]->authid);
             } else {
                 $session->getAuthenticationDetails()->setAuthId('authenticated_user');
             }
             $authRole = 'authenticated_user';
             $session->getAuthenticationDetails()->addAuthRole($authRole);
             if (isset($res[1]->authroles)) {
                 $session->getAuthenticationDetails()->addAuthRole($res[1]->authroles);
             }
             if (isset($res[1]->authrole)) {
                 $session->getAuthenticationDetails()->addAuthRole($res[1]->authrole);
             }
             if (isset($res[1]->_thruway_authextra)) {
                 $session->getAuthenticationDetails()->setAuthExtra($res[1]->_thruway_authextra);
             }
             if (isset($res[1]) && is_object($res[1])) {
                 $res[1]->authrole = $session->getAuthenticationDetails()->getAuthRole();
                 $res[1]->authroles = $session->getAuthenticationDetails()->getAuthRoles();
                 $res[1]->authid = $session->getAuthenticationDetails()->getAuthId();
                 foreach ($res[1] as $k => $v) {
                     $welcomeDetails->{$k} = $v;
                 }
             }
             $session->setAuthenticated(true);
             $session->sendMessage(new WelcomeMessage($session->getSessionId(), $welcomeDetails));
         } else {
             $session->abort(new \stdClass(), "thruway.error.authentication_failure");
         }
     };
     $onAuthenticateError = function () use($session) {
         Logger::error($this, "onauthenticate rejected the promise");
         $session->abort("thruway.error.unknown");
     };
     $extra = new \stdClass();
     $extra->challenge_details = $session->getAuthenticationDetails()->getChallengeDetails();
     $arguments = new \stdClass();
     $arguments->extra = $extra;
     $arguments->authid = $session->getAuthenticationDetails()->getAuthId();
     $arguments->challenge = $session->getAuthenticationDetails()->getChallenge();
     $arguments->signature = $msg->getSignature();
     $arguments->authmethod = $authMethod;
     $arguments->hello_message = $session->getHelloMessage();
     // now we send our authenticate information to the RPC
     $onAuthenticateHandler = $authMethodInfo['handlers']->onauthenticate;
     $this->session->call($onAuthenticateHandler, [$arguments])->then($onAuthenticateSuccess, $onAuthenticateError);
 }