/** * @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 \DateTime $now * @param string $ownEntityId * @param string $partyEntityId * * @return SsoSessionState */ protected function createSession(SsoState $ssoState, Assertion $assertion, \DateTime $now, $ownEntityId, $partyEntityId) { $ssoSession = new SsoSessionState(); $ssoSession->setIdpEntityId($partyEntityId)->setSpEntityId($ownEntityId)->setNameId($assertion->getSubject()->getNameID()->getValue())->setNameIdFormat($assertion->getSubject()->getNameID()->getFormat())->setSessionIndex($assertion->getFirstAuthnStatement()->getSessionIndex())->setSessionInstant($assertion->getFirstAuthnStatement()->getAuthnInstantDateTime())->setFirstAuthOn($now)->setLastAuthOn($now); $ssoState->addSsoSession($ssoSession); return $ssoSession; }
/** * @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; }