Skip to content
Snippets Groups Projects
Commit 9740775f authored by Olav Morken's avatar Olav Morken
Browse files

openidProvider: Add XRDS support.

git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@2169 44740490-163a-0410-bde0-09ae8108e29a
parent dd499f6d
No related branches found
No related tags found
No related merge requests found
......@@ -8,6 +8,9 @@ $serverURL = $this->data['serverURL'];
$trustedSites = $this->data['trustedSites'];
$userId = $this->data['userId'];
$userIdURL = $this->data['userIdURL'];
$xrdsURL = $this->data['xrdsURL'];
header('X-XRDS-Location: ' . $xrdsURL);
if ($userId !== FALSE) {
$title = $this->t('{openidProvider:openidProvider:title_user}', array('%USERID%' => htmlspecialchars($userId)));
......
......@@ -50,6 +50,11 @@ if ($ownPage) {
$userBase = SimpleSAML_Module::getModuleURL('openidProvider/user.php');
$xrds = SimpleSAML_Module::getModuleURL('openidProvider/xrds.php');
if ($userId !== FALSE) {
$xrds = SimpleSAML_Utilities::addURLparameter($xrds, array('user' => $userId));
}
$as = $server->getAuthSource();
$t = new SimpleSAML_XHTML_Template($globalConfig, 'openidProvider:user.tpl.php');
$t->data['identity'] = $identity;
......@@ -61,5 +66,7 @@ $t->data['serverURL'] = $server->getServerURL();
$t->data['trustedSites'] = $trustedSites;
$t->data['userId'] = $userId;
$t->data['userIdURL'] = $userBase . '/' . $userId;
$t->data['xrdsURL'] = $xrds;
$t->show();
exit(0);
<?php
/**
* This endpoint returns an XRDS document describing this server.
*
* @package simpleSAMLphp
* @version $Id$
*/
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>');
echo('</xrds:XRDS>');
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment