/** * Retrieve the OpenID provider class. * * @return sspmod_openidProvider_Server The OpenID Provider class. */ public static function getInstance() { if (self::$instance === NULL) { self::$instance = new sspmod_openidProvider_Server(); } return self::$instance; }
<?php /** * This endpoint returns an XRDS document describing this server. * * @package simpleSAMLphp */ if (isset($_REQUEST['user'])) { $user = (string) $_REQUEST['user']; $serviceTypes = array('http://specs.openid.net/auth/2.0/signon', 'http://openid.net/server/1.0', 'http://openid.net/server/1.1'); } else { $user = NULL; $serviceTypes = array('http://specs.openid.net/auth/2.0/server'); } $server = sspmod_openidProvider_Server::getInstance(); $serverURL = $server->getServerURL(); header('Content-Type: application/xrds+xml'); echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; echo '<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">'; echo '<XRD>'; echo '<Service priority="0">'; foreach ($serviceTypes as $t) { echo '<Type>' . htmlspecialchars($t) . '</Type>'; } echo '<URI>' . htmlspecialchars($serverURL) . '</URI>'; if ($user !== NULL) { $localId = SimpleSAML_Module::getModuleURL('openidProvider/user.php') . '/' . $user; echo '<LocalID>' . htmlspecialchars($localId) . '</LocalID>'; } echo '</Service>'; echo '</XRD>';