示例#1
0
 /**
  * @param string $sp
  * @param string $idp
  * @param SpMeta $spMeta
  * @return LogoutRequest
  * @throws \InvalidArgumentException
  */
 public static function buildLogoutRequestFromEntityDescriptors($sp, $idp, SpMeta $spMeta = null)
 {
     if (is_string($sp)) {
         $sp = self::getEntityDescriptorFromXmlFile($sp);
     } else {
         if (!$sp instanceof EntityDescriptor) {
             throw new \InvalidArgumentException('SP parameter must be instance of EntityDescriptor or string');
         }
     }
     if (is_string($idp)) {
         $idp = self::getEntityDescriptorFromXmlFile($idp);
     } else {
         if (!$idp instanceof EntityDescriptor) {
             throw new \InvalidArgumentException('IDP parameter must be instance of EntityDescriptor or string');
         }
     }
     if (!$spMeta) {
         $spMeta = new SpMeta();
         $spMeta->setNameIdFormat(NameIDPolicy::PERSISTENT);
     }
     $builder = new LogoutRequestBuilder($sp, $idp, $spMeta);
     $result = $builder->build('urn:oasis:names:tc:SAML:2.0:nameid-format:transient', 'user', '_677952a2-7fb3-4e7a-b439-326366e677db');
     return $result;
 }
 /**
  * @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;
 }