/** * @param Container $pimple A container instance */ public function register(Container $pimple) { $pimple[ServiceContainer::NAME_ID_VALIDATOR] = function () { return new NameIdValidator(); }; $pimple[ServiceContainer::ASSERTION_TIME_VALIDATOR] = function () { return new AssertionTimeValidator(); }; $pimple[ServiceContainer::ASSERTION_VALIDATOR] = function (Container $c) { $nameIdValidator = $c[ServiceContainer::NAME_ID_VALIDATOR]; return new AssertionValidator($nameIdValidator, new SubjectValidator($nameIdValidator), new StatementValidator()); }; $pimple[ServiceContainer::ENDPOINT_RESOLVER] = function () { return new CompositeEndpointResolver(array(new BindingEndpointResolver(), new DescriptorTypeEndpointResolver(), new ServiceTypeEndpointResolver(), new IndexEndpointResolver(), new LocationEndpointResolver())); }; $pimple[ServiceContainer::BINDING_FACTORY] = function () { return new BindingFactory($this->systemContainer->getEventDispatcher()); }; $pimple[ServiceContainer::CREDENTIAL_RESOLVER] = function () { $factory = new CredentialResolverFactory($this->credentialContainer->getCredentialStore()); return $factory->build(); }; $pimple[ServiceContainer::SIGNATURE_RESOLVER] = function (Container $c) { $credentialResolver = $c[ServiceContainer::CREDENTIAL_RESOLVER]; return new OwnSignatureResolver($credentialResolver); }; $pimple[ServiceContainer::SIGNATURE_VALIDATOR] = function (Container $c) { $credentialResolver = $c[ServiceContainer::CREDENTIAL_RESOLVER]; return new SignatureValidator($credentialResolver); }; $pimple[ServiceContainer::LOGOUT_SESSION_RESOLVER] = function () { return new LogoutSessionResolver($this->storeContainer->getSsoStateStore()); }; $pimple[ServiceContainer::SESSION_PROCESSOR] = function () { return new SessionProcessor($this->storeContainer->getSsoStateStore(), $this->systemContainer->getTimeProvider()); }; }
/** * @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; }