protected function _configureProxyServer(EngineBlock_Corto_CoreProxy $proxyServer) { $proxyServer->setSystemLog($this->_getSystemLog()); $proxyServer->setSessionLogDefault($this->_getSessionLog()); $application = EngineBlock_ApplicationSingleton::getInstance(); $proxyServer->setConfigs(array('debug' => $application->getConfigurationValue('debug', false), 'trace' => $application->getConfigurationValue('debug', false), 'ConsentStoreValues' => $this->_getConsentConfigurationValue('storeValues', true), 'NoSupportedIDPError' => 'user', 'rememberIdp' => '+3 months')); $attributes = array(); require ENGINEBLOCK_FOLDER_APPLICATION . 'configs/attributes.inc.php'; $proxyServer->setAttributeMetadata($attributes); $proxyServer->setHostedEntities(array($proxyServer->getHostedEntityUrl($this->_hostedEntity) => array('certificates' => array('public' => $application->getConfiguration()->encryption->key->public, 'private' => $application->getConfiguration()->encryption->key->private), 'infilter' => array(new EngineBlock_Corto_Filter_Input($this), 'filter'), 'outfilter' => array(new EngineBlock_Corto_Filter_Output($this), 'filter'), 'Processing' => array('Consent' => array('Binding' => 'INTERNAL', 'Location' => $proxyServer->getHostedEntityUrl($this->_hostedEntity, 'provideConsentService'))), 'keepsession' => true, 'idpMetadataValidUntilSeconds' => 86400, 'WantsAssertionsSigned' => true))); /** * Add ourselves as valid IdP */ $engineBlockEntities = array($proxyServer->getHostedEntityUrl($this->_hostedEntity, 'idPMetadataService') => array('certificates' => array('public' => $application->getConfiguration()->encryption->key->public, 'private' => $application->getConfiguration()->encryption->key->private))); $remoteEntities = $this->_getRemoteEntities(); $proxyServer->setRemoteEntities($remoteEntities + $engineBlockEntities); $proxyServer->setTemplateSource(Corto_ProxyServer::TEMPLATE_SOURCE_FILESYSTEM, array('FilePath' => ENGINEBLOCK_FOLDER_MODULES . 'Authentication/View/Proxy/')); $proxyServer->setBindingsModule(new EngineBlock_Corto_Module_Bindings($proxyServer)); $proxyServer->setServicesModule(new EngineBlock_Corto_Module_Services($proxyServer)); if ($this->_voContext != null) { $proxyServer->setVirtualOrganisationContext($this->_voContext); } }