/**
  * @param string $ownEntityId
  * @param array  $arrIsIdp
  *
  * @return SsoState
  */
 private function buildSsoState($ownEntityId, array $arrIsIdp)
 {
     $ssoState = new SsoState();
     foreach ($arrIsIdp as $isIdp) {
         $otherEntityId = 'other.' . mt_rand(1000, 9999);
         if ($isIdp) {
             $ssoState->addSsoSession((new SsoSessionState())->setIdpEntityId($ownEntityId)->setSpEntityId($otherEntityId));
         } else {
             $ssoState->addSsoSession((new SsoSessionState())->setIdpEntityId($otherEntityId)->setSpEntityId($ownEntityId));
         }
     }
     return $ssoState;
 }
 /**
  * @param SsoState  $ssoState
  * @param Assertion $assertion
  * @param string    $ownEntityId
  * @param string    $partyEntityId
  *
  * @return \LightSaml\State\Sso\SsoSessionState[]
  */
 protected function filterSessions(SsoState $ssoState, Assertion $assertion, $ownEntityId, $partyEntityId)
 {
     return $ssoState->filter($partyEntityId, $ownEntityId, $assertion->getSubject()->getNameID()->getValue(), $assertion->getSubject()->getNameID()->getFormat(), $assertion->getFirstAuthnStatement()->getSessionIndex());
 }
 /**
  * @param SsoState $ssoState
  *
  * @return void
  */
 public function set(SsoState $ssoState)
 {
     $ssoState->setLocalSessionId($this->session->getId());
     $this->session->set($this->key, $ssoState);
 }
 /**
  * @param SsoState $ssoState
  * @param string   $ownEntityId
  *
  * @return SsoSessionState|null
  */
 protected function getIdpSession(SsoState $ssoState, $ownEntityId)
 {
     $idpSessions = $ssoState->filter(null, $ownEntityId, null, null, null);
     return array_shift($idpSessions);
 }
Exemple #5
0
 /**
  * @param array $arrIdp
  * @param array $arrSp
  *
  * @return SsoState
  */
 private function buildAllStateCombinations(array $arrIdp, array $arrSp)
 {
     $state = new SsoState();
     foreach ($arrIdp as $idp) {
         foreach ($arrSp as $sp) {
             $state->addSsoSession($session1 = (new SsoSessionState())->setIdpEntityId($idp)->setSpEntityId($sp));
         }
     }
     return $state;
 }