示例#1
0
 public function build(EntityDescriptorStoreInterface $idpEntityDescriptorStore, EntityDescriptorStoreInterface $spEntityDescriptorStore, array $ownCredentials, array $extraCredentials = null)
 {
     if (empty($ownCredentials)) {
         throw new LightSamlBuildException('There are no own credentials');
     }
     $store = new CompositeCredentialStore();
     $store->add(new MetadataCredentialStore($idpEntityDescriptorStore));
     $store->add(new MetadataCredentialStore($spEntityDescriptorStore));
     $ownCredentialsStore = new StaticCredentialStore();
     foreach ($ownCredentials as $credential) {
         $ownCredentialsStore->add($credential);
     }
     $store->add($ownCredentialsStore);
     $extraCredentialsStore = new StaticCredentialStore();
     $store->add($extraCredentialsStore);
     foreach ($this->extraCredentials as $credential) {
         $extraCredentialsStore->add($credential);
     }
     if ($extraCredentials) {
         foreach ($extraCredentials as $credential) {
             $extraCredentialsStore->add($credential);
         }
     }
     return $store;
 }
 /**
  * @return \LightSaml\Resolver\Credential\CredentialResolverInterface
  */
 private function getResolver()
 {
     $provider = new FixedEntityDescriptorStore();
     $provider->add(EntityDescriptor::load(__DIR__ . '/../../../../../../resources/sample/EntityDescriptor/idp2-ed.xml'));
     $provider->add(EntityDescriptor::load(__DIR__ . '/../../../../../../resources/sample/EntityDescriptor/idp-ed.xml'));
     $provider->add(EntityDescriptor::load(__DIR__ . '/../../../../../../resources/sample/EntityDescriptor/ed01-formatted-certificate.xml'));
     $provider->add(EntityDescriptor::load(__DIR__ . '/../../../../../../resources/sample/EntityDescriptor/sp-ed2.xml'));
     $metadataStore = new MetadataCredentialStore($provider);
     $certificate = new X509Certificate();
     $certificate->loadFromFile(__DIR__ . '/../../../../../../resources/sample/Certificate/saml.crt');
     $credential = new X509Credential($certificate, KeyHelper::createPrivateKey(__DIR__ . '/../../../../../../resources/sample/Certificate/saml.pem', '', true));
     $credential->setUsageType(UsageType::ENCRYPTION)->setEntityId('https://mt.evo.loc/sp');
     $staticStore = new StaticCredentialStore();
     $staticStore->add($credential);
     $compositeStore = new CompositeCredentialStore();
     $compositeStore->add($metadataStore)->add($staticStore);
     $resolverFactory = new CredentialResolverFactory($compositeStore);
     $resolver = $resolverFactory->build();
     return $resolver;
 }