SimpleSAML_IdP::__construct PHP Méthode

__construct() private méthode

Initialize an IdP.
private __construct ( string $id )
$id string The identifier of this IdP.
    private function __construct($id)
    {
        assert('is_string($id)');
        $this->id = $id;
        $metadata = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler();
        $globalConfig = SimpleSAML_Configuration::getInstance();
        if (substr($id, 0, 6) === 'saml2:') {
            if (!$globalConfig->getBoolean('enable.saml20-idp', false)) {
                throw new SimpleSAML_Error_Exception('enable.saml20-idp disabled in config.php.');
            }
            $this->config = $metadata->getMetaDataConfig(substr($id, 6), 'saml20-idp-hosted');
        } elseif (substr($id, 0, 6) === 'saml1:') {
            if (!$globalConfig->getBoolean('enable.shib13-idp', false)) {
                throw new SimpleSAML_Error_Exception('enable.shib13-idp disabled in config.php.');
            }
            $this->config = $metadata->getMetaDataConfig(substr($id, 6), 'shib13-idp-hosted');
        } elseif (substr($id, 0, 5) === 'adfs:') {
            if (!$globalConfig->getBoolean('enable.adfs-idp', false)) {
                throw new SimpleSAML_Error_Exception('enable.adfs-idp disabled in config.php.');
            }
            $this->config = $metadata->getMetaDataConfig(substr($id, 5), 'adfs-idp-hosted');
            try {
                // this makes the ADFS IdP use the same SP associations as the SAML 2.0 IdP
                $saml2EntityId = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted');
                $this->associationGroup = 'saml2:' . $saml2EntityId;
            } catch (Exception $e) {
                // probably no SAML 2 IdP configured for this host. Ignore the error
            }
        } else {
            assert(false);
        }
        if ($this->associationGroup === null) {
            $this->associationGroup = $this->id;
        }
        $auth = $this->config->getString('auth');
        if (SimpleSAML_Auth_Source::getById($auth) !== null) {
            $this->authSource = new SimpleSAML_Auth_Simple($auth);
        } else {
            throw new SimpleSAML_Error_Exception('No such "' . $auth . '" auth source found.');
        }
    }