/** * @test */ public function shouldAllowGetNameIDSetInConstructor() { $helper = new SamlSpInfoHelper(); $expectedNameID = $helper->getNameID(); $samlSpInfo = new SamlSpInfo('idp', $expectedNameID); $this->assertEquals($expectedNameID, $samlSpInfo->getNameID()); }
public function setSamlSpInfo(SamlSpInfo $info) { $this->samlSpInfo = $info; if ($info->getNameID()) { $this->setAttribute(self::ATTRIBUTE_NAME_ID, $info->getNameID()->getValue()); $this->setAttribute(self::ATTRIBUTE_NAME_ID_FORMAT, $info->getNameID()->getFormat()); } if ($info->getAttributes()) { foreach ($info->getAttributes() as $attribute) { $value = $attribute->getValues(); if (count($value) == 1) { $value = array_shift($value); } $this->setAttribute($attribute->getName(), $value); } } if ($info->getAuthnStatement()) { $this->setAttribute(self::ATTRIBUTE_SESSION_INDEX, $info->getAuthnStatement()->getSessionIndex()); } }
/** * @param LogoutRequestBuilder $builder * @param ServiceInfo $serviceInfo * @param SamlSpInfo $samlInfo * @return LogoutRequest */ protected function createLogoutRequest(LogoutRequestBuilder $builder, ServiceInfo $serviceInfo, SamlSpInfo $samlInfo) { $logoutRequest = $builder->build($samlInfo->getNameID()->getValue(), $samlInfo->getNameID()->getFormat(), $samlInfo->getAuthnStatement()->getSessionIndex()); $logoutRequest->sign($serviceInfo->getSpSigningProvider()->getCertificate(), $serviceInfo->getSpSigningProvider()->getPrivateKey()); return $logoutRequest; }
/** * {@inheritdoc} */ public function createUserFromSamlInfo(SamlSpInfo $samlInfo) { $repository = $this->container->get('doctrine')->getManager()->getRepository('FITNetopeerBundle:SamlUser'); $user = $repository->findOneBy(array('nameID' => $samlInfo->getNameID()->getValue())); if ($user) { $user->setUsername($samlInfo->getAttributes()['eduPersonPrincipalName']->getFirstValue()); $user->setTargetedID($samlInfo->getAttributes()['eduPersonTargetedID']->getFirstValue()); } else { $user = new SamlUser(); $user->setUsername($samlInfo->getAttributes()['eduPersonPrincipalName']->getFirstValue()); $user->setTargetedID($samlInfo->getAttributes()['eduPersonTargetedID']->getFirstValue()); $user->setSessionIndex($samlInfo->getAuthnStatement()->getSessionIndex()); $user->setProviderID($samlInfo->getNameID()->getSPProvidedID()); $user->setAuthenticationServiceName($samlInfo->getAuthenticationServiceID()); $user->setNameID($samlInfo->getNameID()->getValue()); $user->setNameIDFormat($samlInfo->getNameID()->getFormat()); } $em = $this->container->get('doctrine')->getManager(); $em->persist($user); $em->flush(); return $user; }