diff --git a/modules/openidProvider/lib/Server.php b/modules/openidProvider/lib/Server.php index 874bb514fc8da15daea75272d60ee04ec32da5f5..3f95298f46348b4987b0a9e05a07463990a93169 100644 --- a/modules/openidProvider/lib/Server.php +++ b/modules/openidProvider/lib/Server.php @@ -80,7 +80,7 @@ class sspmod_openidProvider_Server { SimpleSAML_Utilities::maskErrors(E_WARNING | E_STRICT); try { $store = new Auth_OpenID_FileStore($config->getString('filestore')); - $this->server = new Auth_OpenID_Server($store); + $this->server = new Auth_OpenID_Server($store, $this->getServerURL()); } catch (Exception $e) { SimpleSAML_Utilities::popErrorMask(); throw $e; @@ -378,7 +378,9 @@ class sspmod_openidProvider_Server { } $identity = $this->getIdentity(); - if ($identity !== $request->identity) { + assert('$identity !== FALSE'); /* Should always be logged in here. */ + + if (!$request->idSelect() && $identity !== $request->identity) { /* The identity in the request doesn't match the one of the logged in user. */ throw new SimpleSAML_Error_Exception('Logged in as different user than the one requested.'); } @@ -403,7 +405,7 @@ class sspmod_openidProvider_Server { } /* The user is authenticated, and trusts this site. */ - $this->sendResponse($request->answer(TRUE)); + $this->sendResponse($request->answer(TRUE, NULL, $identity)); } diff --git a/modules/openidProvider/templates/user.tpl.php b/modules/openidProvider/templates/user.tpl.php index e7c44aa33b245ee2b1f2a06edf6fa9ca9483db12..863062c6e87fedaaae8c2e7a7bad5cabdaf683b5 100644 --- a/modules/openidProvider/templates/user.tpl.php +++ b/modules/openidProvider/templates/user.tpl.php @@ -15,8 +15,10 @@ if ($userId !== FALSE) { $title = $this->t('{openidProvider:openidProvider:title_no_user}'); } -$serverLink = '<link rel="openid.server" href="' . htmlspecialchars($serverURL) . '" />'; -$delegateLink = '<link rel="openid.delegate" href="' . htmlspecialchars($userIdURL) . '" />'; +$serverLink = '<link rel="openid.server" href="' . htmlspecialchars($serverURL) . '" />' . "\n"; +$serverLink .= '<link rel="openid2.provider" href="' . htmlspecialchars($serverURL) . '" />'; +$delegateLink = '<link rel="openid.delegate" href="' . htmlspecialchars($userIdURL) . '" />' . "\n"; +$delegateLink .= '<link rel="openid2.local_id" href="' . htmlspecialchars($userIdURL) . '" />'; $this->data['header'] = $title; $this->data['head'] = $serverLink;