/** * @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); }
/** * @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; }