/** * Returns the metadata of this Service Provider in xml. * @return string Metadata in xml * @throws \Exception * @throws \OneLogin_Saml2_Error */ public function getMetadata() { $oneLoginSetting = new \OneLogin_Saml2_Settings($this->config, true); $metadata = $oneLoginSetting->getSPMetadata(); $errors = $oneLoginSetting->validateMetadata($metadata); if (!empty($errors)) { throw new \Exception('Invalid Metadata Service Provider'); } return $metadata; }
/** * Tests the validateMetadata method of the OneLogin_Saml2_Settings * Case valid metadata * * @covers OneLogin_Saml2_Settings::validateMetadata */ public function testValidateMetadata() { $settingsDir = TEST_ROOT . '/settings/'; include $settingsDir . 'settings1.php'; $settings = new OneLogin_Saml2_Settings($settingsInfo); $metadata = $settings->getSPMetadata(); $this->assertEmpty($settings->validateMetadata($metadata)); }
<?php /** * SAML Metadata view */ require_once dirname(dirname(__FILE__)) . '/_toolkit_loader.php'; require_once 'settings.php'; try { #$auth = new OneLogin_Saml2_Auth($settingsInfo); #$settings = $auth->getSettings(); // Now we only validate SP settings $settings = new OneLogin_Saml2_Settings($settingsInfo, true); $metadata = $settings->getSPMetadata(); $errors = $settings->validateMetadata($metadata); if (empty($errors)) { header('Content-Type: text/xml'); echo $metadata; } else { throw new OneLogin_Saml2_Error('Invalid SP metadata: ' . implode(', ', $errors), OneLogin_Saml2_Error::METADATA_SP_INVALID); } } catch (Exception $e) { echo $e->getMessage(); }